in reply to Get Parent Directory

This may help you understand what the code trying to do.

# Set the path variable. $path = "\\default\\main\\Anand\\toipcs\\Tutorials\\internet"; # Make a copy of it $curPath = $path; # Extract (what I assume to be) your user/home directory ("Anand"). # However this line won't work because the substitution operator is m +issing the 's' $curPath =~ !\default\main\(.*)\Tutorials\internet!$1!; # ^ There should be an 's' here # Make a copy of the extracted directory name ("Anand") and print it +out $parentdir = $curPath; print "parent Directory : $curPath\n"; # This line doesn't doesn't make any sense at all??. # It's obviously trying to extract 2 different parts of the path fro +om something # But # a) The is no variable to operate on! It would need to look somethi +ng like: # ($Pdir, $Sdir) = $path =~ m!(.*)\\(.*)!; !!!NOTE the double +d backslash (\\)! # b) Quite what the intent of the '$1,$2' at the end was meant to d +o. ($Pdir,$Sdir) =~ m!(.*)\(.*)$!$1,$2; # Nothing will be printed as the line above did nothing! print "parent branch : $Pdir \t sub branch $Sdir";

However, I think you need to try and explain what it is that you want the code to do, then it may be possible to help you further.


Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!

Replies are listed 'Best First'.
Get Parent Directory : redefined
by Anonymous Monk on Oct 22, 2002 at 12:05 UTC
    Hello, My requirement is to split the path into two strings from a given string. given string pattern : \default\main\(.*)\Tutorials\internet. Here the split delimiter will be "(.*)" and this will not be a part of any of the split strings. The first split string will contain all characters before the delimiter while the second string needs to hold all characters appearing after the delimitor viz., $string1="\default\main\"; $string2="\Tutorials\internet"; Hope the above info will clarify as to what i am tryiing. Thanks in advance. Anandatirtha

      If I understand you, this may be what you are wanting.

      #! perl use warnings; # Always use this, it will help you enormously. use strict; # And this also. use diagnostics; # This gives some very useful hints when you are +developing. #I assume that this will come from somewhere else. my $path = "\\default\\main\\Anand\\toipcs\\Tutorials\\internet"; # And that you know this or know how to find it out (hint: use Cwd; is + one way). my $CurDir = 'Anand'; # And that what you want its find the parts before and after the curre +nt directory in the path my ($Pdir, $Sdir) = $path =~ m!(.+)Anand\\toipcs(.+)!; print "Pdir = '$Pdir' and Sdir = '$Sdir'\n";

      When the above program is run, it produces the following output.

      c:\test>207011 Pdir = '\default\main\' and Sdir = '\Tutorials\internet' c:\test>

      I hope this helps, if not or if I can clarify anything for you, ask away :).


      Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!
        Hello BrowserUK, Thanks for the clarificationa and the code . It's perfectly what i wanted. Greetings!!!! Anandatirtha