私はあなたがファイルデータを取得する部分を見逃していると思います。これを行うには多くの方法があります。あなたは、最も簡単な(しかし最も賢明ではない)ことである、ファイルをスラップすることができます。ファイル名ではなく、ファイルから読み取ったデータと照合します。あなたはファイルハンドルを開いたら、Perlでは、あなたはファイルからデータを取得することが可能な持っているとあなたはまだ自分でデータを取得する必要があります。またmemory map the fileあなたは変更するつもりはないことができるかどう
#!/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
それ。あなたが実際にRAMにそれを読んだことがないので、ファイルは、あまり心配することなく、あなたが好きなように大きくすることができます:あなたはASCII文字列を示す(文字のように発生する必要があります)またはバイナリ値であり、値について
#!/usr/bin/perl
use File::Map qw(map_file);
$SctFile = $ARGV[0] ;
map_file(my $map, $SctFile);
if($map =~ m/000001.*000002.*000000$/) { ... };
さまざまなバイト(たとえば、000001は3バイト、バイト1は0、バイト2は0、バイト3は1)。 – Glenn
000001文字列を検索する必要があります。同じもののための正規表現を書くのを助けてください。 – user381862
#!/ usr/bin/perl $ SctFile = $ ARGV [0]; $ SccFile = $ ARGV [1]; オープンFILE、$ SctFileまたはdie $ !; binmode FILE; $ sctfile =〜m/000001. * 000002. * 000000 $/ 私はこれを試しましたが、正しいとは思われません。 – user381862