perl 문자 치환관련
글쓴이: tss123 / 작성시간: 금, 2011/05/20 - 9:54오전
32비트 바이너리 코드를
한행에 한 비트씩 표시되도록 변환하는 perl 을 만들고 싶은데
생각처럼 잘되지 않습니다.
#!/usr/bin/perl $/ = ''; %b2b = (0 => "0\n", 1 => "1\n", }; while(<>){ chomp; ($binary = $_) =~ s/(.)/$b2b{1c $1}/g; print $binary;
0000111100001111 이 입력된 파일을
1111000011110000
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
이런식으로 바꾸고 싶은데 원하는 결과값이 나오지 않습니다. 조언 부탁드립니다
Forums:
%b2b와 같은 해시 변수에 해시의 목록을 넣을
%b2b와 같은 해시 변수에 해시의 목록을 넣을 때에는
이렇게 넣습니다. 앞에는 올바르게 괄호 ( 로 열었는데 닫을 때에는 중괄호 } 로 닫았습니다.
그리고 while문의 형태는 이러합니다.
while 문의 블락에서 중괄호 { 를 열으셨는데 중괄호 } 를 맨 마지막에 닫지 않았습니다.
아래와 같은 코드는 정규표현식 입니다.
정규표현식은 변수의 문자열에 대해 치환을 합니다.
예를들어 이렇게 쓰면 $str 문자열의 모든 "A" 문자열을 "B"로 바꾸는 식입니다.
특히 이 정규표현식에서 1c는 1c가 아니라 lc(소문자L)입니다.
lc는 입력된 값을 모두 lowercase하여 반환합니다. 그런데 여기서는 0과 1일 뿐이므로 단순히
라고 해도 무방합니다.
정규표현식에 대해서는 http://gypark.pe.kr/wiki/Perl/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D
여기를 보세요.
while 반복문
http://blog.naver.com/PostView.nhn?blogId=wogh999&logNo=20115296076
%hash 해시
http://mwultong.blogspot.com/2006/09/perl-hash.html
lc함수
http://perldoc.perl.org/functions/lc.html
아래는 온라인으로 열람할 수 있는 펄 입문서입니다.
http://www.onyxneon.com/books/modern_perl/index.html
http://books.simon-cozens.org/index.php/Beginning_Perl
Learning Perl 번역본
http://books.perl.kr/lp5/
이렇게 해도 됩니다.
일때, "111100001111000"과 같이 변환하고 싶으시다면 이렇게:
0
0
0
0
1
1
1
1
...
과 같이 개행문자를 각각 넣고 싶으시면 이렇게:
댓글 달기