I think your problem is the interpolation and non-interpolation with double versus single quotes. You don't need to escape your backslashes and dollar sign in your %typehash as you're using single quotes.
This worked (printed the right path) for me:
#!C:\perl\bin\perl use strict; use warnings; my %typehash = ( 'tomcat' => '\d$\logs\tomcat', 'tomcatweb' => '\d$\logs\web', 'apache' => '\d$\logs\Apache' ); sub getLog { my ($a,$type)=@_; my $server=$a; my $dir = "\\\\$server".$typehash{$type}; print "\n $dir "; chomp(my $meh = `dir /b /O:D $dir`); print $meh; } &getLog("test.control.com",'tomcat');
And executed:
{Z} \\vmware-host\Shared Folders > perl script.pl \\test.control.com\d$\logs\tomcat The network path was not found.
In reply to Re: Accessing Windows Path from Perl script
by VinsWorldcom
in thread Accessing Windows Path from Perl script
by kulls
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |