John Poltorak writes: > > Can anyone explain what this code in autoupdate does? :- > > > my $macros = new Autom4te::XFile ("$autoconf" > . " --trace AU_DEFUN:'AU:\$f:\$1'" > . " --trace define:'AC:\$f:\$1'" > . " --melt /dev/null |"); This is just one command, split over several lines for readability. The dot operator connects all these strings into one:
$autoconf --trace AU_DEFUN:'AU:\$f:\$1' --trace define:'AC:\$f:\$1' --melt /dev/null |" So, it runs the above command (everything before "|") and reads its output (the effect of the "|"). The /dev/null part specifies the input file $autoconf should read. $macros is a filehandle that is later read from, line by line. (I could be wrong, of course - I haven't familiarised myself with autoconf 2 1/2 yet ;-) > It appears to be causing the error msg:- > > no such file or directory: /dev/null > > on OS/2. This may be due to a bug in sh or Perl on OS/2 but it's difficult > to debug. What exactly is the purpose of '/dev/null |' above, and can I > try using something else instead just to get a pointer to the underlying > problem? Probably a bug in your sh.