Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Using a scalar as a constant?

by Anonymous Monk
on Oct 15, 2008 at 13:26 UTC ( [id://717217]=note: print w/replies, xml ) Need Help??


in reply to Re: Using a scalar as a constant?
in thread Using a scalar as a constant?

I should have given more details initially. The wxTE_MULTILINE value is being retrieved from an XML file so I'm running into the same issue. This is what my XML entry looks like if it helps
<text_ctrl internal_name="text_ctrl_details" parent="-1" value="" x_coordinate="100" y_coordinate="53" x_size="400" y_size="110" style="wxTE_MULTILINE" />
I'm then using XML::Twig to parse the XML so my actual code looks like this for creating the TextCtrl:
Wx::TextCtrl->new( $parent_panel, -1, $entry->att('value'), [$entry->a +tt('x_coordinate'), $entry->att('y_coordinate')], [$entry->att('x_siz +e'), $entry->att('y_size')], $entry->att('style') );
I've tried making it a function in the XML file and it still fails to show up. It does however work if I assign the constant to a scalar like you described.

Any thoughts?

Replies are listed 'Best First'.
Re^3: Using a scalar as a constant?
by Corion (Patriarch) on Oct 15, 2008 at 13:29 UTC

    Ah. If you have

    my $style = 'wxTE_MULTILINE';

    and want to get at the value returned by the constant/function wxTE_MULTILINE, then you have to use eval:

    print $style; $style = eval $style; die $@ if $@; print $style;
      An eval is possible, but some people rather avoid eval. You can avoid eval by making use of a symbolic reference:
      my $style = 'wxTE_MULTILINE'; { no strict 'refs'; say &$style; # or: say $style->() }
        You can even do it in a strict safe manner :)
        use constant test => 5; if(my $sub = __PACKAGE__->can('test')) { print $sub->(),"\n"; }

                        - Ant
                        - Some of my best work - (1 2 3)

      That did the trick...Thanks!
Re^3: Using a scalar as a constant?
by Anonymous Monk on Oct 15, 2008 at 13:46 UTC
    why not use xrc?
      lol...I've never heard of xrc but looking at it know it seems I'm reinventing the wheel :(

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://717217]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-04-25 19:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found