my $pattern = shift @ARGV; my $name = shift @ARGV; # quotemeta is important to quote all the special # regex chars in the filename pattern $pattern = quotemeta $pattern; # the @ got escaped to '\@' so we have to look for # this sequence instead $pattern =~ s/\\@/(\\d+)/; die 'more than one "@" in pattern' if $pattern =~ tr/@//; my ($number) = $name =~ /^$pattern$/; print $number, $/;