[첫화면으로]Perl/변수

마지막으로 [b]

24 번째 수정본
1. perl 의 변수
2. 특수한 스칼라 변수
3. Scope
3.1. global (package) variable
3.2. lexical variable
3.3. runtime scope
3.4. 스코프에 영향을 미치는 것
4. Global 변수 보충
5. 기타 & Comments

1. perl 의 변수

2. 특수한 스칼라 변수

3. Scope

3.1. global (package) variable

$main::name   = "Your Name Here";
$Fred::name   = "Fred Flintstone";
$Barney::name = "Barney Rubble";

print "\$name in package main   is $name\n";         # 현재 패키지의 $name, 이 경우 $main::name
print "\$name in package Fred   is $Fred::name\n";
print "\$name in package Barney is $Barney::name\n";

$main::name   = "Your Name Here";
$Fred::name   = "Fred Flintstone";
$Barney::name = "Barney Rubble";

print "\$name in package main   is $name\n";
package Fred;
print "\$name in package Fred   is $name\n";
package Barney;
print "\$name in package Barney is $name\n";
package main;

3.2. lexical variable

my $var; 로 선언

3.3. runtime scope

local $var; - 해당 블록이 끝날때까지는 서브루틴으로 점프해도 영향을 미친다. lexical 변수는 그렇지 않음
my $x = 10;              # Line 5
$_ = "alpha";
{
   my $x = 20;         # 이것은 이 블록 안에서만
   local $_ = "beta";  # 이것은 somesub()에까지 영향을 미친다
   somesub();          # Line 10
}
somesub();

sub somesub {
   print "\$x is $x\n";
   print "\$_ is $_\n";
}

$x is 10
$_ is beta
$x is 10
$_ is alpha

$/와 같은 특수 변수를 다루는 경우를 제외하면, local을 쓰는 것을 지양하고 my를 쓸 것. 전역 변수를 조작해야 하는 경우가 생긴다면 디자인을 새로 하는 것을 고려해보라고 함2

3.4. 스코프에 영향을 미치는 것

요점:

4. Global 변수 보충

요점:

5. 기타 & Comments

이름:  
Homepage:
내용:
 

컴퓨터분류
각주:
1. Perldoc:Perlmod
2. Beginning Perl, 1st ed. 260p

이 수정본 편집일: 2014-4-9 4:30 pm (변경사항 [d])
9508 hits | Permalink | 변경내역 보기 [h] | 현재 수정본 보기 | 24 번째 수정본 소스 보기