As already stated in this answer you have to use double quotes for the $input1 to get interpolated (expanded).
But
your script is vulnerable to code-injection. Consider this case (assuming your script's name is decompress.pl):
$ ./decompress.pl "foo.gz; rm -rf /"
This will finally execute
gzip -d foo.gz; rm -rf /
Please read about the two modes system can be called in: either with a string (which is then interpreted by your shell) or with an array of arguments (which bypasses the shell and its interpretation).
Better would be to use the array-mode here:
#!/usr/bin/perl
use strict;
use warnings;
my $input1 = $ARGV[0];
my @unzip_command = ('gzip', '-d', $input1);
system( @unzip_command );
(Btw: you had a typo in your she-bang line. It's not !#/usr/bin/perl but #!…. Please paste your code instead of re-typing it to avoid typos.)