Nispeten yeni bir perl var ve nasıl çalıştığını anlamadığım bir sözdizimi parçasının olduğu check_ilo2_health.pl kod örneğinin bir örneği var. Kod pasajı SSL istemci verilerini ayrıştırmakta, bu durumda XML satır satırındadır.Perl, Regex eşleştirmesinden atama için atama
if ($line =~ m/MESSAGE='/) {
my ($msg) = ($line =~ m/MESSAGE='(.*)'/); #<---- HERE
if ($msg !~ m/No error/) {
if ($msg =~ m/Syntax error/) { #...etc
söz konusu XML örneği:
<RESPONSE
STATUS="0x0000"
MESSAGE='No error'
/>
Yani bu durumda
eğer deyim XML örneğinin
MESAJI hattını alır.
my ($ msg) değişkeninin bir çeşit liste olarak değerlendirildiğini ve normal ifadelerin nasıl eşleştiğini anlıyorum; ancak, anlamadığım şey,
$ msg
için numaralı bir hata olması gibi bir sözdizimidir. Perl, parantez sözdizimi ile oynamak ve bunun çalışması için böyle görünüyor. Çalışırken nasıl çalıştığını bilmek isterim. Herhangi bir yardım takdir edilecektir.
Eğer '= ~' ya da '! ~' Ya atıfta bulunuyorsanız, bunlar [ciltleme operatörleridir] (http://perldoc.perl.org/perlop.html#Binding-Operators). –