|
|||||||||||||||||||||||||||
Jeg prøver at få mine computers til at hjælpe mig med at finde alle
de fejl, jeg laver. Prototyper er én måde. Jeg kan få mit Perl program
til at virke, hvis min subroutine er i bunden af kildeteksten, og jeg
undlader at anvende prototyping, men når jeg nu vil!...
Jeg har lavet to forskellige forsøg, med to forskellige resultater.
Er der nogen, der kan se, hvad jeg gør galt?
Eksempel 1:
----------------------------------------------------------------------------
: # Use perl
eval 'exec perl -S $0 "$@"'
if $running_under_some_shell;
sub jk($jk1,$jk2,$jk3);
print("jk is having problems with forward declarations!\n");
jk(1,2,3);
sub jk($jk1,$jk2,$jk3)
{
print("3.rd argument is $_[2]\n");
}
----------------------------------------------------------------------------
giver følgende output:
Malformed prototype for main::jk: $jk1,$jk2,$jk3 at ./jk.pl line 6.
----------------------------------------------------------------------------
Eksempel 2:
----------------------------------------------------------------------------
: # Use perl
eval 'exec perl -S $0 "$@"'
if $running_under_some_shell;
sub jk($$$);
print("jk is having problems with forward declarations!\n");
jk(1,2,3);
sub jk($jk1,$jk2,$jk3)
{
print("3.rd argument is $_[2]\n");
}
----------------------------------------------------------------------------
giver følgende output:
Prototype mismatch: sub main::jk ($$$) vs ($jk1,$jk2,$jk3) at ./jk.pl
line 10.
jk is having problems with forward declarations!
3.rd argument is 3
----------------------------------------------------------------------------
Med venlig hilsen
Jan Eggert Kofoed
|
||||||||||||||
|
||||||||||||||