#!/usr/bin/perl
#경고를 보여준다 (주석 해제 이후 사용)
#use warnings;
$rock[0] = "aaa";
$rock[1] = "bbb";
$rock[25] = "zzz";
# $#rock : 배열의 마지막 첨자
print $rock[$#rock]."\n";
# -1 : 마지막 요소를 출력 한다
print $rock[-1]."\n";
# 목록 상수 @
# $#wow1 : 해당 배열 또는 목록의 마지막 인덱스 값을 반환한다.
@wow = ("1",2,"test");
print @wow."\n";
print @wow[-1]."\n";
# ..연산자
# 결과 : 목록에 1~100까지 수를 순차적으로 넣어줌.
@wow1 = (1..100);
print "wow1 : ".$#wow1."\n";
# ..연산자
# 결과 ; -1 , 목록에 100..1 과 같이 감소 형태로 넣음 안됨.
@wow1 = (100..1);
print "wow1 : ".$#wow1."\n";
# 목록 상수 qw
# 공백을 통해 목록을 구분 한다
# 구분자 : ! / ( { [ < # 사용 가능
# 다양한 구분자를 사용하는 이유 : unix에서 다양한 입력을 처리하기 위함
@list = qw{
/usr/bin/perl
/usr/game/wow
};
$cnt = 0;
while($cnt<=$#list){
print $cnt." : ".@list[$cnt]."\n";
$cnt+=1;
}
print "---------------\n";
$wo[0] = 123;
$wo[1] = 456;
($wo[0], $wo[1]) = ($wo[1], $wo[0]);
print $wo[-1]."\n";
@welcome = qw#hello , world !#;
$cnt = 0;
while($cnt<=$#welcome){
print $cnt." : ".@welcome[$cnt]."\n";
$cnt+=1;
}
print "---------------\n";
# @array : 목록 개수 , $#array : 마지막 인덱스
@array = 3..5;
print @array."\n";
print $#array."\n";
print "---------------\npush\n---------------\n";
# push : target , push value
push(@array, 10);
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
print "---------------\npush\n---------------\n";
push @array, 1..3;
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
print "---------------\npop\n---------------\n";
pop @array;
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
#shift : 가장 먼저 넣은 값을 반환 처리 한다.
@array = qw#main list description#;
print "---------------\nshift : real\n---------------\n";
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
@remain = shift @array;
print "---------------\nshift : result\n---------------\n";
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
print "---------------\nshift : return\n---------------\n";
$cnt = 0;
while($cnt<=$#remain){
print $cnt." : ".@remain[$cnt]."\n";
$cnt+=1;
}
#unshift : push를 left(오래된 쪽)에 한다
@array = qw!first second third!;
print "---------------\nunshift : real\n---------------\n";
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
unshift @array , fourth;
print "---------------\nunshift : result\n---------------\n";
$cnt = 0;
while($cnt<=$#array){
print $cnt." : ".@array[$cnt]."\n";
$cnt+=1;
}
#foreach 선택 값(목록형태)
print "---------------\nforeach \n---------------\n";
foreach $numbers(qw/one two three/){
print "count : $numbers\n";
}
#foreach :
# 기본 변수 $_
print "---------------\nforeach : \$_ \n---------------\n";
foreach (qw/one two three/){
print "count : $_\n",;
}
#print :
# 기본 변수 $_
print "---------------\nprint : \$_ \n---------------\n";
$_ = "test\n";
print;
#foreach :
# 내부 목록 값 변경 가능
# $number : 해당 선택 값에 사용된 변수는 반복 이후 원상 복귀 됨 , 미 정의 시 undef가 됨
print "---------------\nforeach : undef \n---------------\n";
$number = init;
@numbers = qw!one two three!;
foreach $number (@numbers){
$number = "\t$number\n";
}
print "The numbers are :\n",@numbers;
print "\$number : $number\n";
#reverse
# 인자로 받은 값을 거꾸로 뒤집음.
#sort
# 인자로 받은 값을 정렬 한다.
print "---------------\nreverse & sort\n---------------\n";
@test = 1..10;
print "real : @test\n";
@test = reverse @test;
print "reverse : @test\n";
@test = sort(@test);
print "sort : @test\n";
#스칼라와 목록 문맥 이해
print "---------------\nconsider : scalar & list\n---------------\n";
@sample = qw[one two three];
@same = @sample; #목록을 반환한다.
$n = @sample; #개수를 반환한다.
print @same,"\n";
print $n,"\n";
print "_-_-_-_-_-_-_-_-_-\n";
@backward = reverse qw[one two three]; #목록을 reverse한다
$backward = reverse qw[one two three]; #문장을 reverse한다
print @backward,"\n";
print $backward,"\n";
print "_-_-_-_-_-_-_-_-_-\n";
@sample = qw{one two three};
print @sample,"\n";
print scalar @sample,"\n";
print "_-_-_-_-_-_-_-_-_-\n";
#!/usr/bin/perl
#경고를 보여준다 (주석 해제 이후 사용)
#use warnings;
# ex1) reverse
print "input : (end : press ctrl + D)\n";
chomp(@lines = <STDIN>);
print "result : \n";
@lines = reverse @lines;
foreach(@lines){
print $_,"\n";
}
# ex2) arrangement
@items = qw[one two three four five];
print "input number 1 ~ 5 : (end : press ctrl + D)\n";
chomp(@lines = <STDIN>);
print "result : \n";
foreach(@lines){
print @items[$_-1],"\n";
}
# ex3) sort
print "input : (end : press ctrl + D)\n";
chomp(@lines = <STDIN>);
print "result : \n";
@lines = sort @lines;
foreach(@lines){
print $_,"\n";
}