in reply to Recursive function in perl

I'm sorry, but I don't understand what you are trying to achieve. Are the files stored in nested directories? What are you trying to print, you say that you want to print link names, then you are saying that you want to open those files, and your code tries to print file contents, not names.

Please, explain what you want to do, and I'll do my best to help you. Perhaps write some simple code that does what you want to do only for depth = 2, try it, and if it works, post it, and we'll figure out a way to change it so it works for a variable depth value.

Regards,
Luke

Replies are listed 'Best First'.
Re^2: Recursive function in perl
by ashok13123 (Novice) on Jun 19, 2009 at 12:19 UTC
    Sorry for the confusion....
    Inside the main, there will be some filenames.....

    I want to get the filenames first....Then open each file...Inside each file there will be some other filename....then i will take these file name and open those filenames...So it will continue until the depth we are specifying....

    When the depth is achieved, it should print the file contents....from the main file to the depth

      Thank you for the clarification. I hope this gets you started.

      #!/usr/bin/perl -w use strict; my $initial_file = 'Main'; my $ultimate_level = 2; sub jak_daxter_recursor_legacy { my ($file, $level) = @_; open (FH, $file) or die "Cannot open $file: $!"; my $contents = <FH>; my @filestoprocess = split (/,/, $contents); for my $file (@filestoprocess) { print "$file\n"; jak_daxter_recursor_legacy ($file, $level+1) unless ($level == $ultimate_level); } } jak_daxter_recursor_legacy ($initial_file, 1);

      I tested it using three files:
      Main, containing 'sub1,sub2'
      sub1, containing 'sub12,sub13,sub17'
      sub2, containing 'sub21,sub22'

      The output is as follows:

      sub1 sub12 sub13 sub17 sub2 sub21 sub22

      Hope it helps. If you have any questions, please ask.

      Regards,
      Luke