Thread substr_count in perl (29 answers)
Opened by norman at 2004-07-14 14:52

Crian
 2004-07-14 17:55
#84299 #84299
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=betterworld,14.07.2004, 15:45]
Code: (dl )
1
2
my $x=("warner","brosers");
print $x; # warner
[/quote]
Nö:

Code: (dl )
1
2
my $x = ("warner","brosers");
print "$x\n"; # warner


Ausgabe:

Code: (dl )
1
2
Useless use of a constant in void context at C:\Daten\perl\forum\listen_und_arrays.pl line 1.
brosers


!

Aber:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my $w = "warner", "brosers";
print "w: $w\n";

my $x = ("warner","brosers");
print "x: $x\n";

my ($y) = ("warner","brosers");
print "y: $y\n";

my $z = @{ ["warner","brosers"] };
print "z: $z\n";

my $a = () = ("warner","brosers");
print "a: $a\n";

my $b = () = @{ ["warner","brosers"] };
print "b: $b\n";

my ($c) = () = ("warner","brosers");
print "c: $c\n";


Ausgabe:

Code: (dl )
1
2
3
4
5
6
7
8
9
Useless use of a constant in void context at C:\Daten\perl\forum\listen_und_arrays.pl line 4.
Useless use of a constant in void context at C:\Daten\perl\forum\listen_und_arrays.pl line 1.
w: warner
x: brosers
y: warner
z: 2
a: 2
b: 2
c:


Erklärungsansatz:

Fall w: Kommaoperator, $w wird "warner" zugewiesen, "brosers" ist nur leere Anweisung, deshalb die Warnung.

Fall x: Die Klammer fasst nur den Kommaoperator zusammen, deshalb wird der letzte Wert zurückgegeben und es kommt die Warnung, da "warner" eine leere Anweisung ist. ?-?-?

Fall y: Im Listenkontext kommt der erste Wert der Liste zurück.\n\n

<!--EDIT|Crian|1089814558-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread substr_count in perl