One of the main benefits of grouping related data together is that it makes accessing that data easier. (The other main benefit is that it becomes harder to corrupt the data by accident.) So, in Re: How can one access all the details of a person using arrays & hash? I created a Student class to hold student data, and I added a method sub display to group together the print statements used to print out the data for a single student.
Not sure what you’re asking here, but perhaps you want to be able to print to files instead of to STDOUT? If so, just change the calls to print into calls to sprintf and return the string to be printed:
sub display
{
my ($self) = @_;
my $output = '';
if ($self)
{
$output = sprintf "Name: %s\n", $self->{NAME};
$output .= sprintf "Age: %d\n", $self->{AGE};
$output .= sprintf "Regd no: %s\n", $self->{REGD_NO};
$output .= sprintf "Phone num: %s\n", $self->{PHONE_NUM};
$output .= sprintf "Mark: %d\n", $self->{MARK};
$output .= sprintf "Pass year: %d\n", $self->{PASS_YEAR};
}
return $output;
}
Then print the result:
my $outfile = 'temp.txt';
open(my $fh, '>', $outfile) or die "Cannot open file '$outfile' for wr
+iting: $!";
print $fh find_student('x3')->display();
close($fh) or die "Cannot close file '$outfile': $!";
Hope that helps,
|