📄 op
字号:
op.c AOK "my" variable %s masks earlier declaration in same scope my $x; my $x ; Variable "%s" may be unavailable sub x { my $x; sub y { $x } } Variable "%s" will not stay shared sub x { my $x; sub y { sub { $x } } } Found = in conditional, should be == 1 if $a = 1 ; Use of implicit split to @_ is deprecated split ; Use of implicit split to @_ is deprecated $a = split ; Useless use of time in void context Useless use of a variable in void context Useless use of a constant in void context time ; $a ; "abc" Applying %s to %s will act on scalar(%s) my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ; @a =~ /abc/ ; @a =~ s/a/b/ ; @a =~ tr/a/b/ ; @$b =~ /abc/ ; @$b =~ s/a/b/ ; @$b =~ tr/a/b/ ; %a =~ /abc/ ; %a =~ s/a/b/ ; %a =~ tr/a/b/ ; %$c =~ /abc/ ; %$c =~ s/a/b/ ; %$c =~ tr/a/b/ ; Parentheses missing around "my" list at -e line 1. my $a, $b = (1,2); Parentheses missing around "local" list at -e line 1. local $a, $b = (1,2); Bareword found in conditional at -e line 1. use warnings 'bareword'; my $x = print(ABC || 1); Value of %s may be \"0\"; use \"defined\" $x = 1 if $x = <FH> ; $x = 1 while $x = <FH> ; Subroutine fred redefined at -e line 1. sub fred{1;} sub fred{1;} Constant subroutine %s redefined sub fred() {1;} sub fred() {1;} Format FRED redefined at /tmp/x line 5. format FRED = . format FRED = . Array @%s missing the @ in argument %d of %s() push fred ; Hash %%%s missing the %% in argument %d of %s() keys joe ; Statement unlikely to be reached (Maybe you meant system() when you said exec()? exec "true" ; my $a defined(@array) is deprecated (Maybe you should just omit the defined()?) my @a ; defined @a ; defined (@a = (1,2,3)) ; defined(%hash) is deprecated (Maybe you should just omit the defined()?) my %h ; defined %h ; /---/ should probably be written as "---" join(/---/, @foo); %s() called too early to check prototype [Perl_peep] fred() ; sub fred ($$) {} Mandatory Warnings ------------------ Prototype mismatch: [cv_ckproto] sub fred() ; sub fred($) {} %s never introduced [pad_leavemy] TODO Runaway prototype [newSUB] TODO oops: oopsAV [oopsAV] TODO oops: oopsHV [oopsHV] TODO __END__# op.cuse warnings 'misc' ;my $x ;my $x ;no warnings 'misc' ;my $x ;EXPECT"my" variable $x masks earlier declaration in same scope at - line 4.######### op.cuse warnings 'closure' ;sub x { my $x; sub y { $x } }EXPECTVariable "$x" will not stay shared at - line 7.######### op.cno warnings 'closure' ;sub x { my $x; sub y { $x } }EXPECT######### op.cuse warnings 'closure' ;sub x { our $x; sub y { $x } }EXPECT######### op.cuse warnings 'closure' ;sub x { my $x; sub y { sub { $x } } }EXPECTVariable "$x" may be unavailable at - line 6.######### op.cno warnings 'closure' ;sub x { my $x; sub y { sub { $x } } }EXPECT######### op.cuse warnings 'syntax' ;1 if $a = 1 ;no warnings 'syntax' ;1 if $a = 1 ;EXPECTFound = in conditional, should be == at - line 3.######### op.cuse warnings 'deprecated' ;split ;no warnings 'deprecated' ;split ;EXPECTUse of implicit split to @_ is deprecated at - line 3.######### op.cuse warnings 'deprecated' ;$a = split ;no warnings 'deprecated' ;$a = split ;EXPECTUse of implicit split to @_ is deprecated at - line 3.######### op.cuse warnings 'void' ; close STDIN ;1 x 3 ; # OP_REPEAT # OP_GVSVwantarray ; # OP_WANTARRAY # OP_GV # OP_PADSV # OP_PADAV # OP_PADHV # OP_PADANY # OP_AV2ARYLENref ; # OP_REF\@a ; # OP_REFGEN\$a ; # OP_SREFGENdefined $a ; # OP_DEFINEDhex $a ; # OP_HEXoct $a ; # OP_OCTlength $a ; # OP_LENGTHsubstr $a,1 ; # OP_SUBSTRvec $a,1,2 ; # OP_VECindex $a,1,2 ; # OP_INDEXrindex $a,1,2 ; # OP_RINDEXsprintf $a ; # OP_SPRINTF$a[0] ; # OP_AELEM # OP_AELEMFAST@a[0] ; # OP_ASLICE#values %a ; # OP_VALUES#keys %a ; # OP_KEYS$a{0} ; # OP_HELEM@a{0} ; # OP_HSLICEunpack "a", "a" ; # OP_UNPACKpack $a,"" ; # OP_PACKjoin "" ; # OP_JOIN(@a)[0,1] ; # OP_LSLICE # OP_ANONLIST # OP_ANONHASHsort(1,2) ; # OP_SORTreverse(1,2) ; # OP_REVERSE # OP_RANGE # OP_FLIP(1 ..2) ; # OP_FLOPcaller ; # OP_CALLERfileno STDIN ; # OP_FILENOeof STDIN ; # OP_EOFtell STDIN ; # OP_TELLreadlink 1; # OP_READLINKtime ; # OP_TIMElocaltime ; # OP_LOCALTIMEgmtime ; # OP_GMTIMEeval { getgrnam 1 }; # OP_GGRNAMeval { getgrgid 1 }; # OP_GGRGIDeval { getpwnam 1 }; # OP_GPWNAMeval { getpwuid 1 }; # OP_GPWUIDEXPECTUseless use of repeat (x) in void context at - line 3.Useless use of wantarray in void context at - line 5.Useless use of reference-type operator in void context at - line 12.Useless use of reference constructor in void context at - line 13.Useless use of single ref constructor in void context at - line 14.Useless use of defined operator in void context at - line 15.Useless use of hex in void context at - line 16.Useless use of oct in void context at - line 17.Useless use of length in void context at - line 18.Useless use of substr in void context at - line 19.Useless use of vec in void context at - line 20.Useless use of index in void context at - line 21.Useless use of rindex in void context at - line 22.Useless use of sprintf in void context at - line 23.Useless use of array element in void context at - line 24.Useless use of array slice in void context at - line 26.Useless use of hash element in void context at - line 29.Useless use of hash slice in void context at - line 30.Useless use of unpack in void context at - line 31.Useless use of pack in void context at - line 32.Useless use of join or string in void context at - line 33.Useless use of list slice in void context at - line 34.Useless use of sort in void context at - line 37.Useless use of reverse in void context at - line 38.Useless use of range (or flop) in void context at - line 41.Useless use of caller in void context at - line 42.Useless use of fileno in void context at - line 43.Useless use of eof in void context at - line 44.Useless use of tell in void context at - line 45.Useless use of readlink in void context at - line 46.Useless use of time in void context at - line 47.Useless use of localtime in void context at - line 48.Useless use of gmtime in void context at - line 49.Useless use of getgrnam in void context at - line 50.Useless use of getgrgid in void context at - line 51.Useless use of getpwnam in void context at - line 52.Useless use of getpwuid in void context at - line 53.######### op.cno warnings 'void' ; close STDIN ;1 x 3 ; # OP_REPEAT # OP_GVSVwantarray ; # OP_WANTARRAY # OP_GV # OP_PADSV # OP_PADAV # OP_PADHV # OP_PADANY # OP_AV2ARYLENref ; # OP_REF\@a ; # OP_REFGEN\$a ; # OP_SREFGENdefined $a ; # OP_DEFINEDhex $a ; # OP_HEXoct $a ; # OP_OCTlength $a ; # OP_LENGTHsubstr $a,1 ; # OP_SUBSTRvec $a,1,2 ; # OP_VECindex $a,1,2 ; # OP_INDEXrindex $a,1,2 ; # OP_RINDEXsprintf $a ; # OP_SPRINTF$a[0] ; # OP_AELEM # OP_AELEMFAST@a[0] ; # OP_ASLICE#values %a ; # OP_VALUES#keys %a ; # OP_KEYS$a{0} ; # OP_HELEM@a{0} ; # OP_HSLICEunpack "a", "a" ; # OP_UNPACKpack $a,"" ; # OP_PACKjoin "" ; # OP_JOIN(@a)[0,1] ; # OP_LSLICE # OP_ANONLIST # OP_ANONHASHsort(1,2) ; # OP_SORTreverse(1,2) ; # OP_REVERSE # OP_RANGE # OP_FLIP(1 ..2) ; # OP_FLOPcaller ; # OP_CALLERfileno STDIN ; # OP_FILENOeof STDIN ; # OP_EOFtell STDIN ; # OP_TELLreadlink 1; # OP_READLINKtime ; # OP_TIMElocaltime ; # OP_LOCALTIMEgmtime ; # OP_GMTIMEeval { getgrnam 1 }; # OP_GGRNAMeval { getgrgid 1 }; # OP_GGRGIDeval { getpwnam 1 }; # OP_GPWNAMeval { getpwuid 1 }; # OP_GPWUIDEXPECT######### op.cuse warnings 'void' ;for (@{[0]}) { "$_" } # check warning isn't duplicatedno warnings 'void' ;for (@{[0]}) { "$_" } # check warning isn't duplicatedEXPECTUseless use of string in void context at - line 3.######### op.cuse warnings 'void' ;use Config ;BEGIN { if ( ! $Config{d_telldir}) { print <<EOM ;SKIPPED# telldir not presentEOM exit }}telldir 1 ; # OP_TELLDIRno warnings 'void' ;telldir 1 ; # OP_TELLDIREXPECTUseless use of telldir in void context at - line 13.######### op.cuse warnings 'void' ;use Config ;BEGIN { if ( ! $Config{d_getppid}) { print <<EOM ;SKIPPED# getppid not presentEOM exit }}getppid ; # OP_GETPPIDno warnings 'void' ;getppid ; # OP_GETPPIDEXPECTUseless use of getppid in void context at - line 13.######### op.cuse warnings 'void' ;use Config ;BEGIN { if ( ! $Config{d_getpgrp}) { print <<EOM ;SKIPPED# getpgrp not presentEOM exit }}getpgrp ; # OP_GETPGRPno warnings 'void' ;getpgrp ; # OP_GETPGRPEXPECTUseless use of getpgrp in void context at - line 13.######### op.cuse warnings 'void' ;use Config ;BEGIN { if ( ! $Config{d_times}) { print <<EOM ;SKIPPED# times not presentEOM exit }}times ; # OP_TMSno warnings 'void' ;times ; # OP_TMSEXPECTUseless use of times in void context at - line 13.######### op.cuse warnings 'void' ;use Config ;BEGIN {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -