Jump to content

My first Perl program


Stefany93

Recommended Posts

Howdy folks, 

 

After diving into Perl, I managed to write my first  "program" or script rather. Basically what I wanted to do was to create an equivalent of the PHP function print_r() for displaying arrays' keys and values and thus helping for an easier debugging.

 

Here is the script:

 

 

     #!/usr/bin/perl
# We are telling Perl that
# we shall be working in a web 
# browser and therefore sending
# the proper HTTP headers.
print "content-type: text/html \n\n";
# Perl version.
use v5.16.3;
# This subroutine will display
# the keys and the elements 
# of the array
# given as a subroutine parameter.
sub print_r(){ 
# $x will iterate through the 
# @keys array.
my $x = 0;
# We collect the keys of 
# the given array in the 
# @keys array.
my @keys = keys(@_);
# Display 'Array' before the loop.
print 'Array ( <br />';
# Iterate through the array.
foreach my $value (@_){
# Print the key of the current value
# using $x as an index starting at 0
# and then print the value.
print ' ' . $keys[$x] . ' => ' . $value . ' <br />';
# Increment our index variable so that 
# the next element of the array is selected
# in the next iteration.
$x++;
}
# End of the loop. Dislaying the closing the array. 
print ' )'; 
}
 
__END__

 

I have a couple of questions if you guys can help me please!

 

1. Shall I leave the comments as they were within the subroutine or put them above it?

 

2. I tried to check whether the parameter is an array with the ref() function, but the problem is that Perl subroutine parameters treats everything as an array, even empty string or a scalar variable as long as it is put as a parameter in the sub call. So I can't really think of a proper check that checks whether for example &print_r(@array) is an array.

 

If any of you can think of tips to give me for Perl, I will be very grateful. I think Perl is an awesome language.

Link to comment
https://forums.phpfreaks.com/topic/283568-my-first-perl-program/
Share on other sites

  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.