I have a bit of a strange problem... I have consulted the very useful assistance haukex and others provided on Re^9: Preparing data for Template.
The problem is dereferencing an entry in a hash. At first, I thought it was the trouble I always seem to run into when using references. So, I built some test code to check what I was doing and it works as expected.
use strict;
my $val = 'A';
my $vars = { 'test' => $val };
reftest('testing', $vars);
sub reftest {
my ($value, %vars) = @_;
print "$value\n";
print $$vars{'test'}."\n";
}
C:\Users\ian\Perl>perl dereference.pl
testing
A
The output is exactly as expected.
But the code on the webserver is structured the same. The only difference is that the subroutine is a method in a blessed object...could this really make a difference?
The calling code...
my $vars = { 'testpage' => $data{'testpage'} };
$html->process('index', $vars);
And the method within the $html object...
sub process {
my ($self, $disp, %v) = @_;
my $testpage = $$v{'testpage'};
print "<h1>".$testpage."</h1>\n";
}
The output is
<h1></h1> only.
I have checked the $data{'testpage'} contains the expected data of either 'A' or 'B'.
What is causing the lack of dereferencing or what else could I try to debug this problem?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.