Ben perl ayıklayıcıya içeride 'Modern perl' kod değerlendirmek kuramıyorum. Bir dosyada kodu ayıklarken, komut isteminden değil, tamam çalışıyor.Hata ayıklayıcı içinde perl 5.10 özellikleri nasıl kullanılır?
asgari örnek:
# activating 5-10 features with -E (it works)
$ perl -E 'say "x"'
x
# calling the debugger with -E # it works for infile code but for prompt line code... $ perl -dEbug Loading DB routines from perl5db.pl version 1.33 DB say "x" String found where operator expected at (eval 16)[/local-perl/lib/5.12.1/perl5db.pl:638] line 2, near "say "x"" at (eval 16)[/local-perl/lib/5.12.1/perl5db.pl:638] line 2 eval '([email protected], $!, $^E, $,, $/, $\\, $^W) = @saved;package main; $^D = $^D | $DB::db_stop;say "x";
[not: aynı " ': 5.10' kullanım özelliğiyle" ile olur]
Ben bir şey eksik?
Hummm, cevabınız için teşekkürler, bunun neden olduğunu açıklıyor. Ama artık daha şaşkın: Ben 'kullanım özelliği 'demek'' ve bu işe yaramadı ile ayıklayıcısında bu özellikleri yüklemeden önce çalıştık. Şimdi hileyi gördüm: Aynı çizgide olmalı. Niye ya??? Neden 'özellik' modülü mevcut kapsamı (DB hattı) için yerelleştirilmiş işlevleri verir? 'Kullanım' bunu nasıl yapabilir? Ancak bu her zaman küreseldi. Eğer lokalize bir şey istediyseniz 'gereksinim' kullanıyorsunuz değil mi? Bu konuda herhangi bir aydınlanma için minnettarım. –
Bunun da olağandışı olduğunu düşündüm. Dürüst olmak gerekirse, "neden" bölümünde gerçekten emin değilim, ama kesinlikle doğru gibi görünüyorsun - 'x özelliği kullan' ifadeleri DB hattına dağıtılmış gibi davranıyor. Benim tahminim, her satırın farklı bir blok/kapsam olarak yürütülmesidir, çünkü $ x = 1 gibi bir değişkeni bildirmek sonraki satırlarda da "$ x" yapamaz. satır, sadece mevcut hat). (Feature' 'gibi) pragmas lexically bunları kullanmak hangi bloğun sonuna kapsamına eklenir, bu durum tutarlı olacaktır. – eldarerathis
teşekkürler, 'feature' sözcük kapsamını kaçırdı. Bu, 'sadece satır eyleminde' açıklar. Ancak, modülümün veya komut dosyasının 'özellik özelliğini kullanmaya başladığında neden işe yaramadığını biliyor musunuz?Bu, tüm kullanım özelliklerinde gerçekleşeceği anlamına mı geliyor? Son olarak, eğer perl> 5.10 özelliklerini kullanıyorsanız, komut dosyasında, satırda bir hata olduğunda bunları nasıl ayıklarsınız ve hata ayıklayıcıda onunla oynamak istersiniz? Devel :: REPL'i onunla oynamak ister misiniz? –