Woodya has asked for the wisdom of the Perl Monks concerning the following question:
I've run into a strange situation with file names containing multiple consecutive spaces passed through a piped open call. The platform I'm testing on (and the target running environment) is Perl 5.6.1 (ActiveState) Win32 build running on a Win2K server. The problem can be demonstrated with the below sample:
The output looks like:#!/usr/bin/perl use strict; my $filename = 'This_filename_has_2 2_spaces.txt'; my $tempstr = "echo \"$filename\" |"; printf "Below is the output of \'$tempstr\'\n"; open (IN,$tempstr) or die "Failed to echo $filename!\n"; printf "\t"; printf <IN>; close (IN);
Below is the output of 'echo "This_filename_has_2 2_spaces.txt" |' This_filename_has_2 2_spaces.txt
The output of the first print statement maintains the two spaces in the filename, but the response from the echo has condensed it to a single space. Same thing happens with multiple spaces.
I've tried different quote delimeters, as well as using sysopen (which I couldn't figure out how to use as a pipe in this same way). The escaped double quotes on the filename are needed for real external calls like md5sum.exe, since it's Win32. I'm wondering if this is a quirk of the Win32 environment, or if this happens elsewhere as well. Suggestions?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: consecutive spaces in piped open
by BrowserUk (Patriarch) on Dec 25, 2002 at 09:27 UTC | |
|
Re: consecutive spaces in piped open
by dws (Chancellor) on Dec 25, 2002 at 08:59 UTC | |
|
Re: consecutive spaces in piped open
by pg (Canon) on Dec 25, 2002 at 17:42 UTC | |
|
Re: consecutive spaces in piped open
by traveler (Parson) on Dec 25, 2002 at 16:55 UTC | |
|
Re: consecutive spaces in piped open
by Woodya (Novice) on Dec 25, 2002 at 18:50 UTC | |
|
Re: consecutive spaces in piped open
by MarkM (Curate) on Dec 26, 2002 at 07:08 UTC | |
by Woodya (Novice) on Dec 31, 2002 at 22:37 UTC | |
|
Re: consecutive spaces in piped open
by bart (Canon) on Dec 28, 2002 at 10:15 UTC |