SORU
20 EYLÜL 2008, CUMARTESİ


Nasıl stderr stdout ve çıkış kodu bir anda, Perl yakalamak mı?

Perl harici bir işlem, onun stderr yakalama VE işlem çıkış kodu stdout mümkün mü?

Örneğin backticks stdout almak için kullanabilir, bunlar IPC kombinasyonları yapmak mümkün gibi görünüyor::Open3 yakalama çıkışları ve sistem() çıkış kodları almak için.

Nasıl stderr stdout ve çıkış tek seferde kodu yakalamayı düşünüyorsunuz?

CEVAP
20 EYLÜL 2008, CUMARTESİ


(Güncelleme: IO için API güncelleme::CaptureOutput bu daha da kolay hale getirmek için.)

Bunu yapmak için çeşitli yollar vardır. Burada bir seçenek, IO::CaptureOutput modülü kullanarak:

use IO::CaptureOutput qw/capture_exec/;

my ($stdout, $stderr, $success, $exit_code) = capture_exec( @cmd );

Ayrıca daha genel bir çekim vardır CaptureOutput bu capture_exec() işlevi, ama IO:: () bunu da Perl çıkışı veya harici program çıktısını yakalamak için kullanılabilir fonksiyonu. Eğer bazı Perl modülü bazı harici program kullanımı olursa, hala çıktı.

Ayrıca sadece STDOUT ve STDERR (ya da onları birleştirme) yakalamak yerine IPC kullanarak tek bir yaklaşım hatırlamak gerekir::Open3 Perl çıkış yakalamak için harici programlar ve diğer modülleri için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Avast

    Avast

    27 NİSAN 2006
  • pilslajt

    pilslajt

    20 HAZİRAN 2008
  • TechXCentral

    TechXCentral

    12 Temmuz 2011