Thread Array sortieren das Strings und Interger enthaelt (9 answers)
Opened by roli at 2006-04-05 18:20

Dubu
 2006-04-06 23:48
#64388 #64388
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Strat,05.04.2006, 19:09]uebrigens:
Code: (dl )
return ($irgendwas)

kann unter umstaenden gefaehrlich werden (nicht in diesem fall), wenn die funktion im listenkontext aufgerufen wird; da wird naemlich eine liste mit einem element zurueckgegeben, was vielleicht bei wahrheitswerten mal true werden koennte
Code: (dl )
if (my @items = &DoWhatEver()) {

deshalb sowas immer ohne klammern returnen:
Code: (dl )
return $irgendwas;
[/quote]
Ich habe jetzt eine Zeitlang versucht, mir ein Beispiel zu konstruieren, das einen Unterschied zwischen return $foo und return ($foo) (und anderen Varianten) zu finden, aber es gelingt mir nicht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl
use strict;
use warnings;

sub foo1 { return undef; }
sub foo2 { return (undef); }
sub foo3 { return(undef); }
sub foo4 { my @myarr; return @myarr; }
sub foo5 { my @myarr; return (@myarr); }
sub foo6 { my @myarr; return(@myarr); }
sub foo7 { return 1; }
sub foo8 { return (1); }
sub foo9 { return(1); }

use Data::Dumper;
my @arr1 = foo1();
my @arr2 = foo2();
my @arr3 = foo3();
my @arr4 = foo4();
my @arr5 = foo5();
my @arr6 = foo6();
my @arr7 = foo7();
my @arr8 = foo8();
my @arr9 = foo9();

print Dumper \@arr1;
print Dumper \@arr2;
print Dumper \@arr3;
print Dumper \@arr4;
print Dumper \@arr5;
print Dumper \@arr6;
print Dumper \@arr7;
print Dumper \@arr8;
print Dumper \@arr9;

Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$VAR1 = [
         undef
       ];
$VAR1 = [
         undef
       ];
$VAR1 = [
         undef
       ];
$VAR1 = [];
$VAR1 = [];
$VAR1 = [];
$VAR1 = [
         1
       ];
$VAR1 = [
         1
       ];
$VAR1 = [
         1
       ];

Hast du ein Beispiel, wo es wirklich einen Unterschied macht?

View full thread Array sortieren das Strings und Interger enthaelt