2016-09-13 5 views
-1
my $secret = int(1+rand(100)); 
LOOP: { 

    print "Please enter a guess from 1 to 100: "; 
    chomp(my $guess = <STDIN>); 
    my $found_it = 0; 
    given($guess) { 
     when (! /\A\d+\Z/) { say "Not a number!" } 
     when ($_ > $secret) { say "Too High!" } 
     when ($_ < $secret) { say "Too low!" } 
     default { say "Just right!"; $found_it++ } 
    } 
    last LOOP if $found_it; 
    redo LOOP; 
} 

このコードは実行できません。私は間違いを見つけることができません! ​​ここで、このperlコードのエラーです。

+1

実際にIDEが言うことを教えてください。 – Li357

+0

行1-7とは何ですか? – ysth

+0

ideは私に特定の問題を教えてくれません – Allen

答えて

3

あなたが使用している新しいキーワードが認識されていないように見えます。

あなたはまだなっていない場合は、それらを有効にする:あなたは、暗黙的にスマートマッチを使用しているので、また

use 5.010; # or higher 
# or 
use feature 'switch'; 

、より新しいPerlのバージョンでは、あなたは

no warnings 'experimental::smartmatch'; 

を言う必要がありますし、将来のPerlバージョンでは変更が予定されています。

関連する問題