Leser: 20
1 2 3 4 5
my @eintraege; $eintraege[5] = 'test 5'; $eintraege[7] = 'test 7'; $eintraege[100] = 'test 100'; print "Scalar: " . scalar @eintraege . "\n";
2009-11-18T13:22:47 pqund ich hasse es, das jedesmal dazuschreiben zu müssen, zumal in dem fall bianca diejenige war, die die falsche behauptung aufgestellt hat.
2009-11-18T14:12:32 bianca2009-11-18T13:22:47 pqund ich hasse es, das jedesmal dazuschreiben zu müssen, zumal in dem fall bianca diejenige war, die die falsche behauptung aufgestellt hat.
Welche Behauptung war falsch?
2009-11-18T15:00:00 pqTaulmarill hat auf meine bemerkung hin richtiggestellt, dass 101 nicht unbedingt der nächste freie zähler ist. das ist abhängig von $[, deshalb ist die behauptung ohne erwähnung von $[ im grunde genommen falsch.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$[ The index of the first element in an array, and of the first
character in a substring. Default is 0, but you could theoret‐
ically set it to 1 to make Perl behave more like awk (or For‐
tran) when subscripting and when evaluating the index() and
substr() functions. (Mnemonic: [ begins subscripts.)
As of release 5 of Perl, assignment to $[ is treated as a com‐
piler directive, and cannot influence the behavior of any other
file. (That’s why you can only assign compile-time constants
to it.) Its use is highly discouraged.
Note that, unlike other compile-time directives (such as
strict), assignment to $[ can be seen from outer lexical scopes
in the same file. However, you can use local() on it to
strictly bind its value to a lexical block.
2009-11-18T12:46:15 biancaAber mit welcher Syntax erhalte ich 3 zurück, also die Anzahl der belegten Felder im Array?
print scalar grep { defined $_} @eintraege;
2009-11-18T12:46:15 biancaHi!
Code (perl): (dl )1 2 3 4 5my @eintraege; $eintraege[5] = 'test 5'; $eintraege[7] = 'test 7'; $eintraege[100] = 'test 100'; print "Scalar: " . scalar @eintraege . "\n";
Ergibt 101, den nächsten freien Zähler im Array.
Aber mit welcher Syntax erhalte ich 3 zurück, also die Anzahl der belegten Felder im Array?
1 2 3 4 5 6 7
my %hash = ( 5 => 'test 5', 7 => 'test 7', 100 => 'test 100', ); say "Elemente: ". scalar keys %hash;
perl -le '$ar[500_000_000]=1; '
2009-11-18T22:23:48 DubuNein, selbst mein 8 GB-System meldet gleich Out of memory.Mit so etwas wie
kann man sonst seinen Rechner schon ein klein wenig ins Schwitzen bringen.Code: (dl )perl -le '$ar[500_000_000]=1; '
perl -le '$ar[300_000_000]=1; '