파이프 된 실행을위한 일부 Perl 스크립트를 수정하고 주어진 입력 매개 변수 집합을 사용하여 실행하기위한 래퍼 스크립트를 작성해야합니다. 내가 할 수 있기 전에, 나는 첫 번째 프로그램에 무엇이 들어가고 있는지 이해해야한다.해시 배열을 배열에 저장 하시겠습니까?
# declare and initialise an empty hash
my %to_keep=();
# an array
@line = ('some\one', 'two', 'three', 'four');
# trim the identifier
$line[0]=~s/\/[1]$//;
# store this into an array
@{$to_keep{$line[0]}{'1'}}=($line[1],$line[2]);
print @;
내가 펄 대체 기능의 /// 잘 알고 있어요 :이 코드를 해독 도움이 필요합니다. 다음과 같습니다 :
s/text-regex_to_be_replaced/replacement/modifier.
그러나 위의 코드가 무엇을하는지 잘 모르겠습니다. 내가 올바르게 이해하면 문자열 끝에 '$ /'가 붙을 때까지 '\'이 (가) 줄 바꿈으로 바뀝니다. 이 올바른지?
다른 부분은 'store'덧글 아래의 코드입니다. 어레이의 해쉬를 배열에 저장하고 있다고 생각합니다. 어떤 사람이 코드가 어떻게 작동하는지, 그리고 변수가 주어지면 어떻게 인쇄 할 수 있는지 설명 할 수 있습니까? 또한 배열에 저장 한 데이터를 검색하려면 어떻게해야합니까?
보너스 질문 : 누군가가 파이프 연결 실행을위한 펄 스크립트 수정 방법을 설명 할 수 있습니까?
감사합니다.
Ummmmm .... 무엇을'print @;'수행합니까? 그건 오타예요? –
줄 $ line [0] = ~ s/\/[1] $ //; 가장 이상한 것 같아서 - 왜 1 대신에 [1]을 써야합니까? – mzedeler
첫 번째 질문에 답하기 위해 $ line [0] = ~ s/\/[1] $ // 문자열이 끝에있을 경우/1을 제거합니다. 그것은 타이핑 오류처럼 보입니다. 문자열의 끝에서 [1]이 $ line [0] = ~ s/\ // [1] /로 바뀌면 읽어야 할 내용입니다. – mzedeler