in reply to unusual behaviour with Inline-Files and IO-Handle

Any help is appreciated, I've been spending hours trying to figure out why it fails, granted I'm no perl expert. The runtime error is: Bad file descriptor at io.pl line 19.

Your code works for me, so maybe you need to or die Fudge() to get more info, maybe

Also, you don't need to fdopen , all you need is select OUTPUT;

Speaking of which, that style of subs that print to default handle is kinda smelly :)

  • Comment on Re: unusual behaviour with Inline-Files and IO-Handle (select)

Replies are listed 'Best First'.
Re^2: unusual behaviour with Inline-Files and IO-Handle (select)
by Peamasii (Sexton) on Dec 07, 2015 at 16:17 UTC
    Thanks for your suggestions, when changing fdopen to a select(OUTPUT) statement, I get a new Inline section at the end of the script:
    __OUTPUT__ headerprint
    so I think Inline::Files is acting really weird, instead of writiing to an external file, it writes to a new data section in my script.
      "so I think Inline::Files is acting really weird, instead of writiing to an external file, it writes to a new data section in my script."

      Far from being "really weird", that's actually documented behaviour. It even alerts you to this behaviour in the WARNING section which has two paragraphs:

      1. "It is possible that this module may overwrite the source code ..."
      2. "This module is still experimental. ..."

      I have used Inline::Files for demonstration purposes only (particularly on this site) to save having to create and list multiple input files as well as the source code of my script. I have never used this module in production and, given its experimental status, never intend to.

      If you are using this module in production code, I'd strongly recommend finding an alternative, non-experimental solution.

      — Ken