2025年1月8日 星期三

Perl one-liner 中 -MO=Deparse 參數--反向剖析功能

 以上回的指令為例,加上 -MO=Deparse  參數,產生如下輸出

>perl -MO=Deparse -0777 -ne "$temp=$1 and $temp=~s/\n//g and print $temp while /(?s)--- -- --(.+?)---/g" abc.ini

BEGIN { $/ = undef; $\ = undef; }

LINE: while (defined($_ = readline ARGV)) {

    $temp = $1 and $temp =~ s/\n//g and print $temp while /(?s)--- -- --(.+?)---/g;

}

-e syntax OK

這個選項在除錯時滿有幫助的,例如,我們可以用分號代替 and 關鍵字看看結果

>perl -MO=Deparse -0777 -ne "$temp=$1 ; $temp=~s/\n//g ; print $temp while /(?s)--- -- --(.+?)---/g" abc.ini

BEGIN { $/ = undef; $\ = undef; }

LINE: while (defined($_ = readline ARGV)) {

    $temp = $1;

    $temp =~ s/\n//g;

    print $temp while /(?s)--- -- --(.+?)---/g;

}

-e syntax OK

其中 $1 還沒被定義就使用了,在執行期會發生錯誤。




沒有留言:

張貼留言