Schrift
[thread]5802[/thread]

strict und my

Leser: 1


<< |< 1 2 3 4 ... 6 >| >> 53 Einträge, 6 Seiten
jan10001
 2003-10-05 22:02
#61236 #61236
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Wenn ich das richtig verstehe ist $test nur innerhalb der Klammer gültig. Wie müßte das aussehen damit $test auch außerhalb der Klammern gültig ist?

Code: (dl )
1
2
3
if ($x eq $y) {
my $test = "123";
}
esskar
 2003-10-05 22:05
#61237 #61237
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=jan10001,05.10.2003, 20:02]Wenn ich das richtig verstehe ist $test nur innerhalb der Klammer gültig. Wie müßte das aussehen damit $test auch außerhalb der Klammern gültig ist?

Code: (dl )
1
2
3
if ($x eq $y) {
my $test = "123";
}
[/quote]
Code: (dl )
1
2
3
4
my $test = "";
if ($x eq $y) {
$test = "123";
}
jan
 2003-10-05 22:06
#61238 #61238
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
my $test; # ev auch gleich mit "" oder 0 oder sonstwas vorbelegen, my $test = "";
if($x eq $y)
{
$test = 123;
}
jan10001
 2003-10-05 22:20
#61239 #61239
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Hm, ich dachte da gäbe noch eine andere Möglichkeit. Es stört mich, die Variable erst vordefinieren zu müssen, wenn man mal in den Klammern ne globale Varaible erzeugen möchte.
betterworld
 2003-10-05 22:27
#61240 #61240
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Global ist sie dann auch nicht wirklich, wenn Du sie ausserhalb der Klammern definierst. Sie gilt wiederum nur im umgebenden Block und insbesondere nicht in anderen Dateien. Um so etwas zu bekommen, musst Du
Code: (dl )
$foo::bar="";

schreiben. Im Allgemeinen sollte man das aber vermeiden. Lieber mit Exporter arbeiten. Und immer erwaegen, wie global das ueberhaupt sein muss.\n\n

<!--EDIT|betterworld|1065378717-->
jan10001
 2003-10-05 22:32
#61241 #61241
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
In dem Fall wäre sie global, da sie duch keine weiteren Klammern begrenzt wird. Zum Exporter werde ich erstmal googlen gehn.
betterworld
 2003-10-05 22:33
#61242 #61242
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
man Exporter

ist auf englisch :p
Strat
 2003-10-06 02:17
#61243 #61243
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
my $test = "123" if $x eq $y;
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
esskar
 2003-10-06 02:53
#61244 #61244
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Strat,06.10.2003, 00:17]
Code: (dl )
my $test = "123" if $x eq $y;
[/quote]
ich finde, dass bringt nur nix, weil man mit $test nie arbeiten kann...
Strat
 2003-10-06 03:12
#61245 #61245
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nicht arbeiten?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\>perl
use strict;
use warnings;
my $x = 2;
my $test = 123 if $x;
print $test;
^Z
123
C:\>perl
use strict;
use warnings;
my $x = 0;
my $test = 123 if $x;
print $test;
^Z
Use of uninitialized value in print at - line 5.

C:\>
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 3 4 ... 6 >| >> 53 Einträge, 6 Seiten



View all threads created 2003-10-05 22:02.