Een array-slice (de naam zegt het al

) is een stukje uit een array. Zo kun je uit een (bestaande) array een aantal elementen pakken. Bijvoorbeeld:
Perl:
1
2
3
| my @vierdeEnVijfdeElement = @tempopslag[4,5]; # Pak alleen 4e en 5e element
my $vierdeElement_v1 = $tempopslag[4];
my $vierdeElement_v2 = @tempopslag[4]; # Is hetzelfde als de vorige regel! |
2. Mijn if statement ziet er nu zo uit:
code:
1
| if (not defined $tempopslag[1]){$tempopslag[1]="$regel";} |
Waarom zet jij dit:
er nog achter? Wat doet dat meer dan mijn huidige ifstatement?
Niet veel: het kijkt louter of $tempopslag[1] een lege string is. Je mag het weglaten als je alleen wilt dat wanneer $tempopslag[1] niet gedefinieerd is, deze gelijk gemaakt wordt aan de inhoud van $regel.
Ontzettend stomme opmerking: zie reply van Onno...
3. Ik zou nog graag het verschil weten tussen:
en
en
Hoe zeg ik nu dat de inhoud van variable gelijk moet zijn aan het cijfer nul, en hoe zeg ik dat de variable false moet zijn? Dit is nogal onduidelijk voor mij in mijn boek.
In ieder geval al enorm bedankt voor je hulp.
Allereerst: in Perl de waarde 0 en undef is altijd
onwaar en alle andere waarden zijn waar. Daarnaast kijkt Perl naar de context van een expressie en probeert zo een waar/niet waar uitspraak eraan te verbinden. Dit kan af en toe lastig zijn, maar het volgende stukje code maakt (hoop ik) wel duidelijk hoe de context van een expressie gebruikt wordt...
Perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
| my $zeroValue = 0;
my $nonZeroValue = 1;
my $stringValue = "test";
my $undefValue = undef;
if ( $zeroValue == 0 ) { print "jep: 0 is gelijk aan 0!\n"; }
if ( $zeroValue ) { print "nee: 0 is toch geen ware uitspraak?\n"; }
if ( $nonZeroValue == 0 ) { print "nee: 1 is gelijk aan 0?\n"; }
if ( $nonZeroValue ) { print "jep: 1 is een ware uitspraak!\n"; }
if ( $stringValue ) { print "jep: Strings zijn ook ware uitspraken!\n"; }
if ( $stringValue == "" ) { print "JaWi moet 'use warnings' gebruiken!!!\n"; }
if ( not defined $undefValue ) { print "jep: 'not defined undef' is een ware uitspraak!\n"; }
if ( $undefValue ) { print "nee: undef is ook geen ware uitspraak?\n"; } |
De uitkomst van het bovenstaande stukje code is alleen die zinnen die met "jep" beginnen.
edit:
oeps: een kleine typo in het gebruik van een array-slice!
edit2: domme opmerking eruit gehaald!
[
Voor 14% gewijzigd door
JaWi op 08-10-2004 22:25
]
Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.