Sunday, April 20, 2008
Perl 펄] 2차원 배열 화면 출력 예제 소스 코드; 2D, 2Dimensional Array Print
펄에서 엑셀 시트와 같은 2차원 배열을 정의한 후에, 그 배열을 가나다 ABC순으로 소팅하고, 화면에 출력하는 예제입니다. 이차원 배열을 하나의 "표"처럼 출력하는 것입니다.
이차원 배열 정의한 후, 소트하고, 표 출력하기
예제 소스 파일명: example.pl
위의 예제 실행 결과 화면:
이차원 배열 정의한 후, 소트하고, 표 출력하기
예제 소스 파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;
# 허접한 2차원 배열 정의
my @main_data = (
[ "ZZZ", 533, "증권주", "", "" ],
[ "bbb", -436, "식품주", "05-31", "코스닥" ],
["하하하", 111, "잡주", "", "" ],
[ "TTT", 111, "잡주", "", "" ],
[ "AAA", 1453, "제약주", "03-31", "코스피" ],
[ "aaa", 64436, "철강주", "", "" ],
["가나다", 64436, "철강주", "", "" ],
[ "EE", 242, "전력주", "", "코스피" ],
[ "EEE", 242, "전력주", "", "코스피" ],
[ "eee", 242, "전력주", "", "코스피" ],
[ "BBB", 643, "보험주", "05-31", "" ],
);
print "2차원 배열의 행(Rows)의 개수 = ", $#main_data + 1, "\n";
print "2차원 배열의 열(Columns)의 개수 = ", $#{$main_data[0]} + 1, "\n";
print "-------------------------------------------\n\n";
# 2차원 배열의 1번째 칼럼을 기준으로 문자열을 대소문자 구분없이 정렬
@main_data = sort { lc($a->[0]) cmp lc($b->[0]) } @main_data;
# 2차원 배열 화면에 출력하기
for (my $i = 0; $i <= $#main_data; $i++) {
print "\n";
for (my $j = 0; $j <= $#{$main_data[$i]}; $j++) {
print $main_data[$i][$j], "\t";
}
}
use strict; use warnings;
# 허접한 2차원 배열 정의
my @main_data = (
[ "ZZZ", 533, "증권주", "", "" ],
[ "bbb", -436, "식품주", "05-31", "코스닥" ],
["하하하", 111, "잡주", "", "" ],
[ "TTT", 111, "잡주", "", "" ],
[ "AAA", 1453, "제약주", "03-31", "코스피" ],
[ "aaa", 64436, "철강주", "", "" ],
["가나다", 64436, "철강주", "", "" ],
[ "EE", 242, "전력주", "", "코스피" ],
[ "EEE", 242, "전력주", "", "코스피" ],
[ "eee", 242, "전력주", "", "코스피" ],
[ "BBB", 643, "보험주", "05-31", "" ],
);
print "2차원 배열의 행(Rows)의 개수 = ", $#main_data + 1, "\n";
print "2차원 배열의 열(Columns)의 개수 = ", $#{$main_data[0]} + 1, "\n";
print "-------------------------------------------\n\n";
# 2차원 배열의 1번째 칼럼을 기준으로 문자열을 대소문자 구분없이 정렬
@main_data = sort { lc($a->[0]) cmp lc($b->[0]) } @main_data;
# 2차원 배열 화면에 출력하기
for (my $i = 0; $i <= $#main_data; $i++) {
print "\n";
for (my $j = 0; $j <= $#{$main_data[$i]}; $j++) {
print $main_data[$i][$j], "\t";
}
}
위의 예제 실행 결과 화면:
D:\Z>example.pl
2차원 배열의 행(Rows)의 개수 = 11
2차원 배열의 열(Columns)의 개수 = 5
-------------------------------------------
AAA 1453 제약주 03-31 코스피
aaa 64436 철강주
bbb -436 식품주 05-31 코스닥
BBB 643 보험주 05-31
EE 242 전력주 코스피
EEE 242 전력주 코스피
eee 242 전력주 코스피
TTT 111 잡주
ZZZ 533 증권주
가나다 64436 철강주
하하하 111 잡주
D:\Z>
2차원 배열의 행(Rows)의 개수 = 11
2차원 배열의 열(Columns)의 개수 = 5
-------------------------------------------
AAA 1453 제약주 03-31 코스피
aaa 64436 철강주
bbb -436 식품주 05-31 코스닥
BBB 643 보험주 05-31
EE 242 전력주 코스피
EEE 242 전력주 코스피
eee 242 전력주 코스피
TTT 111 잡주
ZZZ 533 증권주
가나다 64436 철강주
하하하 111 잡주
D:\Z>
tag: perl
Perl | 펄
Perl 에 관한 코드들은 잘 보고 있습니다. :-)
현재 irc.hanirc.org #perl에서 Perl 하는 분들이 여럿 몰려 있으므로, 혹시 관심이 있으시다면 한번 들러보시는 것은 어떨까요?
트랙백을 못 찾아서 수동 트랙백 남김니다.
http://aero.dnip.net/blog/2008/04/perl-2-1.html
JEEN님께: 고맙습니다. 그런데 요즘에 안타깝게도 Perl을 할 시간이 없더군요.^^;
aero님께: 고수의 솜씨이십니다. 저는 아직 초보 수준을 벗어나지 못하고 있습니다^^;
<< Home