|
| Forskellen på deklarering af variabler med~ Fra : Tom |
Dato : 03-12-06 18:15 |
|
Hej
Hvad er forskellen for Perl, om jeg deklarerer en variabel med paranteser
omkring eller ej i nedenstående tilfælde:
my $foo = 42;
my ($bar) = 10;
Tom
| |
Flemming Frandsen (03-12-2006)
| Kommentar Fra : Flemming Frandsen |
Dato : 03-12-06 19:50 |
|
Tom wrote:
> my $foo = 42;
> my ($bar) = 10;
Well, man kan få perl til at ligne lisp lidt mere, men ellers tror jeg
ikke der er nogen forskel:)
....Men med paranteser kan du skrive:
my ($foo, $bar, $baz) = (1,2,3);
eller måske bare:
my ($foo, $bar);
eller
($foo, $bar) = @baz[1,2];
| |
Lasse Hillerøe Peter~ (18-12-2006)
| Kommentar Fra : Lasse Hillerøe Peter~ |
Dato : 18-12-06 11:22 |
|
Tom wrote:
> Hej
>
> Hvad er forskellen for Perl, om jeg deklarerer en variabel med paranteser
> omkring eller ej i nedenstående tilfælde:
>
> my $foo = 42;
> my ($bar) = 10;
>
> Tom
I dit konkrete eksempel er forskellen effektivt ingenting.
Overordnet er forskellen at parenteserne giver en listekontekst til
initialiseringsudtrykket:
able /footmp $ cat test.pl
sub myfun {
my $a = @_;
print "\$a is $a\n";
}
sub myfun2 {
my($a) = @_;
print "\$a is $a\n";
}
myfun("Foo");
myfun("Bar","Zot");
myfun2("Foo");
myfun2("Bar","Zot");
able /footmp $ perl test.pl
$a is 1
$a is 2
$a is Foo
$a is Bar
Så man skal ikke tro at parentesen altid kan undværes når der kun er en
variabel!
-Lasse
| |
|
|