#!/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";

}


+ Recent posts