perl variable scope

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Sep 6 20:29:50 EEST 2007


On 2007-09-06 19:44, Giorgos Pallas <gpall at ccf.auth.gr> wrote:
> Ξέρατε ότι...
> άλλο αυτό: my $other, $sum;
> και άλλο αυτό: my $sum, $other;
> και άλλο αυτό: my($other, $sum);
>
> στα δυο πρώτα μόνο η πρώτη μεταβλητή δηλώνεται τοπική (πχ μέσα σε μια
> sub) ενώ η δεύτερη είναι global. Το τρίτο (που είναι και το σωστό - αυτό
> που μάλλον ήθελες δηλαδή) τις κάνει και τις δυο local... κουφό; Τέλος
> πάντων.

Ναι, αλλά thanks για το email.  Όλο και κάποιος θα έχει μείνει επίσης
μαλάκας όταν κατάλαβε ότι το my operator μπορεί να γίνει apply σε ένα
identifier χωρίς παρενθέσεις ή (σε array-context) σε περισσότερα αλλά
μόνο με παρενθέσεις :-)

Ένα άλλο χρήσιμο Perl syntax trick είναι και το:

	foreach my $var (@arrayname) {
	}

που δηλώνει την $var μόνο μέσα στο body του foreach, με ενδιαφέροντα
obfuscation attributes όπως το:

	foreach#$key(@pseudoarray){
        my$x((1,2,3)){print"$x\n";}




More information about the Linux-greek-users mailing list