Şu anda bir Perl komut dosyasını .NET'e dönüştürmek üzere hazırlamaya çalışıyorum. Önceden Perl'de daha önce hiç tecrübem yok, ancak bir çok Google-fu ile başa çıkmayı başarabiliyordum. Ne yaptığından emin olmadığım için beni durduran tek bir kod satırına girdim. Çoğu şeyi anlayabildim, ama bir parçayı kaçırdım ve gerçekten bu kadar önemli olup olmadığını bilmiyorum.{} ifadesindeki ifade {} ifadesinden sonra {} ifadesinin boş bırakılması {} deyiminde
eval { if(defined $timeEnd && defined $timeStart){}; 1 } or next;
Ben defined
onlar null
/nothing
/undef
olup olmadığını görmek için değişkenleri $timeEnd
ve $timeStart
kontrol olduğunu biliyoruz: İşte kod çizgidir. Ayrıca, tüm özel durumları yakalamak için eval
bloğunun Try/Catch bloğu olarak kullanıldığına inanıyorum. Kod satırı foreach
döngüsündedir, dolayısıyla anahtar sözcüğünün foreach
döngüsünün sonraki yinelemesine devam edeceğine inanıyorum.
Deşifre etmekte zorlandığım kısım {};1
bittir. Anladığım kadarıyla, ;
, Perl'de bir ifade ayırıcısıdır ve bir ters eğik çizgi ile kaçmadığından, orada ne yaptığını bilmiyorum. Ayrıca {}
'un ne anlama geldiğini de bilmiyorum. Bir dizi ile ilgili bir şey olduğunu varsayalım, ama boş bir dizi olurdu ve bir if()
bloğundan hemen sonra özel bir şey ifade edip etmediğini bilmiyorum. Son olarak, 1
tek bir tam sayısının eval
bloğun sonunda ne anlama geldiğini ve orada ne yaptığını bilmiyorum.
Birisi bu kod satırını tek tek parçalara ve tanımlarına ayırabilirse, bunu takdir ediyorum.
Bonus: Bana bir .NET dönüşümü ve her bir Perl bitinin bununla nasıl ilişkili olduğunu söylerseniz, size kesinlikle internet saygılarımı sunacağım. İşte artık bildiklerini ile VB.NET dönüştürmek gibi olacaktır: bir istisna olmadığını
For each element in xmlList 'This isn't in the Perl code I posted, but it's the `foreach` loop that the code resides in.
Try
If Not IsNothing(timeEnd) AND Not IsNothing(timeStart) then
End If
Catch ex as Exception
Continue For
End Try
Next
$ timeStart' ve '$ timeEnd' nereden geliyor? –
{}, 'if' sözdiziminin bir parçasıdır; Sadece gerçek durumda hiçbir şey yapmıyor. Noktalı virgül gereksizdir, ancak boş bir deyim yasal olduğu için bir sözdizimi hatası değildir, bu nedenle 1 ile boş bir deyim arasında if. Genel olarak, bu ifade buggy veya eksik veya her ikisi de görünüyor. el.pescado @ – ysth
, onlar 'XML :: LibXML' –