On 14-02-10 12:35:39, Andrew Gregory wrote: > On 02/10/14 at 06:27pm, Pierre Neidhardt wrote: > > On 14-02-10 12:15:03, Andrew Gregory wrote: > > > On 02/10/14 at 05:26pm, Pierre Neidhardt wrote: > > > > On 14-02-10 11:09:25, Andrew Gregory wrote: > > > > > On 02/09/14 at 07:41pm, Pierre Neidhardt wrote: > > > > > > +open (my $syncout, '-|', 'pacman', '-Ss', @ARGV) or exit; > > > > > > > > > > If we can't run pacman we need to print an error message and exit > > > > > non-zero. > > > > > > > > 'open' already prints an error message. Writing > > > > > > So perl prints its own warning on open() failures only for pipes, > > > breaking a common idiom... brilliant. I'm tempted to disable that > > > warning and print our own to get rid of the script name and line > > > number, but given how unlikely it is to happen, it may not be worth > > > it. Any thoughts? We still need to exit non-zero either way. > > > > > > > +open (my $syncout, '-|', 'pacman', '-Ss', @ARGV) or die "pacman not > > > > found: $!"; > > > > I was quite surprised as well, considering that the above line comes > > directly > > from the official documentation... > > > > How do you disable error output from open? > > "no warnings 'io';" should do it. See perldoc perllexwarn
Alright. We have the choice between * using 'exit' and rely on perl's behaviour printing its own warnings; * disabling warning for the 'open' line only. More reliable, but more code and looks hackish. Not beautiful either way, but this is perl. I suggest we stick to the lightest solution with a simple exit call. -- Pierre Neidhardt He's dead, Jim.
