2012-08-23 4 views
-2

배열에서 백 슬래시를 제거해야합니다.백 슬래시를 트림하는 방법은 무엇입니까?

use strict; 
use warnings; 
use Time::HiRes qw(sleep); 
use Test::WWW::Selenium; 
use Test::More "no_plan"; 
use Test::Exception; 

@array = "qwerty-uioplkjadsfcxhbdhjjkgkmnvkgmkgmkgkglmzbcd\-\dfgtg\qwerty"; 

위의 배열에서 \을 제거해야합니다. 나는 @array =~ s/\\//;으로 해봤지만 할 수 없다.

배열에서 백 슬래시를 제거한 후, 배열은 아래와 같이 포함되어 있어야합니다

print @array; 

    output: 

qwerty-uioplkjadsfcxhbdhjjkgkmnvkgmkgmkgkglmzbcd - dfgtg qwerty 

어떻게 난 그냥 백 슬래시를 제거 할 수 있습니까? 모든

+0

'@array = ~ s/\\ //;'는 컴파일되지 않습니다. 질문이 실제로 이해되기 전에 주장을 고쳐야하며 (그리고 데이터가 어디서 오는지 설명해야합니다). – DavidO

+0

@DavidO : dat은 배열에서 명령을 검색합니다. –

답변

1

첫째 : 당신이 q{ }.

을 대신 "..";'...d\-\dfgtg\qwerty";'를 작성하거나 사용해야하므로 따옴표는, 보간됩니다 그런 다음 유효한 구문은하지하는 @array =~ s/\\//;있다. 나는 s#\\##g for @array;라고 쓰고 싶었던 것 같습니다.

이 코드는 작동합니다

my @array = q{qwerty-uioplkjadsfcxhbdhjjkgkmnvkgmkgmkgkglmzbcd\-\dfgtg\qwerty}; 
say "--> '$_'" for @array; 

s#\\##g for @array; 
say "--> '$_'" for @array; 

출력 :

--> 'qwerty-uioplkjadsfcxhbdhjjkgkmnvkgmkgmkgkglmzbcd\-\dfgtg\qwerty' 
--> 'qwerty-uioplkjadsfcxhbdhjjkgkmnvkgmkgmkgkglmzbcd-dfgtgqwerty' 

BTW가 : 당신이 당신의 배열에 하나 개의 요소가있는 경우, 당신은 아마 scalar를 사용해야합니다.

+0

@ Sebastin : 그 슬래시를 제거하고 슬래시를 제거하려면 공간이 있어야합니다. \를 우주로 바꾸는 것이 가능합니까? 아니면 더 좋은 방법이 있을까요? –

+0

's # \\ ## g' 대신's # \\ # # g '를 사용하십시오. –

+0

@array에 대입 (s ///)을 적용하면 test.pl에서 스칼라 (@array)에 적용됩니다. test.pl에서 대체 (s ///)를 수정할 수 없습니다. ar " \\ # #g; " 컴파일 오류로 인해 test.pl이 중단되었습니다. –

관련 문제