use system(@list) form instead:
That does nto work on windows!
The simplest solution to the OP's problem is:
my $source_directory = 'E:\\common\compare\latest folder\PDF\DB\\';
`dir \"$source_directory\" /b/s /o:-d`;
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
| [reply] [Watch: Dir/Any] [d/l] |
perl -we "system('dir','/b/s','/o:-d',shift)" "Program Files"
C:\Program Files\Internet Explorer
C:\Program Files\Microsoft Office
C:\Program Files\Syncplicity
C:\Program Files\McAfee
C:\Program Files\WinDjView
C:\Program Files\Synaptics
C:\Program Files\Realtek
C:\Program Files\Microsoft Silverlight
C:\Program Files\Windows Journal
C:\Program Files\Java
C:\Program Files\Microsoft Policy Platform
C:\Program Files\Common Files
C:\Program Files\Lenovo
C:\Program Files\Courion Corporation
C:\Program Files\Windows Defender
...
indeed, there was dir.exe in cygwin in my setup that I needed to expunge before running the one-liner | [reply] [Watch: Dir/Any] [d/l] |
Well I never, bless my soul, so it does. (In this case...) I stand corrected!
On Windows, parameters are passed to executables as a single string, so the list forms of system & open etc., join the list into a single string before calling CreateProcess().
There is some intelligence involved in the concatenation, but in many, (by my experience: most) cases, that 'intelligence' flies in the face of expectation, and gets it wrong.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
| [reply] [Watch: Dir/Any] |
system 'perl', '-E', 'say 12345;';; ## Works!
12345
system 'perl', '-E', 'say "hello world";';; ## Doesn't work.
system 'perl', '-E', 'say \"hello world\";';; ## Doesn't work.
system 'perl', '-E', '"say \"hello world\";"';; ## Works!
hello world
system 'perl', '-E', '\"say \"hello world\";\"';; ## Doesn't work,
Can't find string terminator '"' anywhere before EOF at -e line 1.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
| [reply] [Watch: Dir/Any] [d/l] |
| [reply] [Watch: Dir/Any] |
No it does not work.
Works for me:
C:\test>perl -we"my $dir = 'c:\\program files\\'; print for `dir \"$di
+r\" /s /b /o:-s`"
c:\program files\7-Zip
c:\program files\Bin
c:\program files\Common Files
c:\program files\Core Temp
c:\program files\CPUID
c:\program files\Direct Modeling Express 4.0
c:\program files\Extras
c:\program files\GlowCode 9.0
c:\program files\Hitman Pro 3.5
...
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
| [reply] [Watch: Dir/Any] [d/l] |