Schrift
[thread]263[/thread]

Subroutinen: von html-formular aufrufen (Seite 4)

Leser: 1


<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten
renee
 2004-06-03 14:51
#2555 #2555
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#! /usr/bin/perl

use strict;

my $var = 'Hallo!';
test();
print 'Main: ',$var,"\n";

sub test{
my $var = 'Test';
print 'Sub: ',$var,"\n";
}


Ausgabe:
Quote
Sub: Test
Main: Hallo

hier sind die $var's unterschiedliche Variablen

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#! /usr/bin/perl

use strict;

my $var = 'Hallo!';
test();
print 'Main: ',$var,"\n";

sub test{
$var = 'Test';
print 'Sub: ',$var,"\n";
}


Ausgabe:
Quote
Sub: Test
Main: Test


Hier greift die Sub auf die globale Variable zu und verändert diese...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2004-06-04 01:19
#2556 #2556
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du mußt Dich im Geltungsbereich der Blöcke befinden.
Blöcke = sowas: {}
Wobei einer, der mit if oder unless anfängt, durchgehend bis else zählt.

Wenn Du also in einem Block eine Variable deklarierst, kannst Du sie an seine Sub übergeben, entweder selbst oder über deren Referenz.

also:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
my $var = 1;
my $var2 = '-';

sub print_was {
 my $par = shift;
 print $ref $par ? $$par : $par;
print $var2;
# Wenn Du die Referenzen nicht derefenenzieren würdest,
# sondern anzeigst, siehst, Du daß $var und $var nicht im
# geleichen Speicherbereich liegen, je nachdem welche
# $var eben gerade gültig ist.
}

# jetzt freihstehender Block
{ my $var = 2;
 print_was $var;
 print_was \$var;
# Die Variable $var mit dem Wert 2 verschwindet nach dem } in Nirwana.
}
print_was $var;
print_was \$var;

Ausgegeben wird: 2-2-1-1-\n\n

<!--EDIT|steffenw|1086297995-->
$SIG{USER} = sub {love 'Perl' or die};
<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten



View all threads created 2004-05-23 23:24.