http://www.perlmonks.org?node_id=1024154


in reply to Re^2: How to print out package code ?
in thread How to print out package code ?

You are opening the file for each line, overwriting the previous output. Open it just once before entering the loop.
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^4: How to print out package code ?
by Martin90 (Sexton) on Mar 18, 2013 at 21:44 UTC
    Unfortunatelly, still doesn't work. Now, I am getting empty file ;/
    my @tab; open MODULE, "perldoc -m ModuleX|" or die "Failed to open pipeline +($!)"; open(X,"> xxx_dump.txt")|| warn "Fail: ($!)"; while (<MODULE>) { @tab = split; foreach $_ (@tab) { print X $_; } } close X; close MODULE;
    What is wrong ? Maybe perldoc -m ModuleX doesn't work with used modules ?
      Why did you introduce @tab and the inner loop? This works for me:
      open MODULE, "perldoc -m ModuleX |" or die "Failed to open pipeline($! +)"; open(X,"> xxx_dump.txt")|| warn "Fail: ($!)"; while (<MODULE>) { print X $_; } close X; close S;
      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
        Yes you are right, it works but not for my module which before is attached to script is decompiled by .so file. Have you got good solution for this case ?