0

私は共有したいと思っていた perl で奇妙なことに出くわしました。「testfile.txt」というテキスト ファイルがあります。

ここにあります....

BLAH BLAH BLAH BLAH BLAH
The dollar amount is $2.30 today
BLAH BLAH BLAH BLAH BLAH

次に、2.30 を抽出します。以下の例では、ファイルを丸呑みしており、正常に動作しています。まったく機能しない2番目の方法。スラープには魔法がありますか?

#!/usr/local/bin/perl

## THIS WORKS
my $content;
my $filename = "testfile.txt";
my $fh="FILEIN";
open(my $fh, '<', $filename) or die "cannot open file $filename";
{
   local $/;
   $content = <$fh>;
}
close($fh);
my $price;
($price)=$content=~m{is\s\$([0-9]{1,2}\.[0-9]{2})\stoday};
print "Result is $price\n"; #Correctly produces 2.30

## DOESN'T WORK

$content2="BLAH BLAH BLAH BLAH BLAH The dollar amount is $2.30 today BLAH BLAH BLAH BLAH BLAH";
my $price2;
($price2)=$content2=~m{is\s\$([0-9]{1,2}\.[0-9]{2})\stoday};
print "Result is $price2\n"; #Doesn't work

注: (明確化)。割り当て例から 2.30 を抽出するにはどうすればよいですか? 私の現実世界のアプリケーションでは、それが私が困惑しているところです。それを抽出する方法を知っている人はいますか?
JW

4

1 に答える 1