Я думаю, вам просто не хватает той части, где вы получаете данные файла. Есть много способов сделать это. Вы можете украсть файл, что является самым простым (но не самым мудрым) делом. Затем вы сравниваете данные, которые вы читаете из файла, а не имя файла. В Perl, когда вы открываете файловый дескриптор, у вас есть его для получения данных из файла, и вам все равно нужно получать данные самостоятельно:
#!/usr/bin/perl
$SctFile = $ARGV[0] ; # get filename
open FILE, $SctFile or die $!; # open file for reading
binmode FILE; # bin mode it for binary reading
my $data = do { local $/; <FILE> }; # slurp all the data
if( $data =~ m/000001.*000002.*000000$/ ) { ... } # match against the data
Вы также можете отобразить в памяти файл , если вы не собираетесь его менять. На самом деле вы никогда не читаете его в ОЗУ, поэтому файл может быть настолько большим, насколько вам нравится, без особого беспокойства:
#!/usr/bin/perl
use File::Map qw(map_file);
$SctFile = $ARGV[0] ;
map_file( my $map, $SctFile );
if( $map =~ m/000001.*000002.*000000$/ ) { ... };