#!/usr/bin/perl use strict; use warnings; use IO::Uncompress::Gunzip qw(gunzip $GunzipError); my %args = map { $_ => 1 } @ARGV; my $in_file = $ARGV[0] or die "no input file"; # remove extension (my $out_file = $in_file) =~ s{\.[^.]+$}{}; if (! -f $in_file) { die "input file does not exist: \"$in_file\"\n"; } if (-f $out_file and !exists($args{'--force'})) { die "output file exists, not overwriting: \"$out_file\""; } gunzip $in_file => $out_file, BinModeOut => 1 or die "gunzip failed: $GunzipError\n";