1

ある種のフラグでstdinから抜け出そうとしていますが、コードを実行するときは、コントロールdを使用して抜け出す必要があります。誰かがここでポインタを教えてくれませんか?ありがとう:

while(my $line = <STDIN>){
chomp $line;
last if $line == 0;
push @stdin, $line;
}
4

1 に答える 1

3

更新(2回)

あるタイプまたは別のタイプの文字列比較を使用します。==は数値比較であり、比較の両側を強制的に数値にします。純粋な数値以外のほとんどすべての文字列は、最終的に0になります。

while (my $line = <STDIN>) {
   chomp $line;

   # use the string comparison operator...
   last if $line eq "0";
   # or use a match operator...
   # last if $line =~ m/^0$/;
   # or match on some special number
   # last if $line == 3.1415926;

   push @stdin, $line;
}

私はこれをWindowsでテストしました:

perl -e "while(my $line = <STDIN>){chomp $line;last if $line =~ m'^[.]$'}END{print @l}"

およびUNIX:

perl -e 'while(my $line = <STDIN>){chomp $line;last if $line=~m/^[.]$/;push@l,$line}END{print@l,$/}'

古い答え

Ctrl+ ZWindowsでは?すでに組み込まれているフラグ。UnixではCtrl+を使用しますD

于 2012-08-08T18:30:44.930 に答える