7 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
use strict;
use warnings;
use Data::Dumper ();
use Constraints::Variable;
use Constraints::Rule;
Constraints::Rule::make(); # hier wird eine Var. Q erzeugt
print Data::Dumper::Dumper(\$::Q); # so geht's
no strict qw(vars);
print Data::Dumper::Dumper(\$Q); # wäre ohne 'no strict' ein Fehler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package Constraints::Rule;
use strict;
use warnings;
use Constraints::Variable;
sub make {
my $V = Constraints::Variable->new('Q', 'abc');
$V->useit('Q');
$::Q = $V;
}
1;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package Constraints::Variable;
use strict;
use warnings;
sub new {
my $class = shift;
my ($name, $value) = @_;
bless {
-Name => $name,
-Value => $value,
}, $class;
}
sub useit {
my $class = shift;
my $varname = shift;
no strict qw(refs);
*{'main::'.$varname} = *{'Constraints::_AUTOVARS::'.$varname};
#eval qq{
# package main;
# use vars qw(\$$varname);
#}
# Das use-vars-eval schein kein Unterschied zu machen
}
1;
7 Einträge, 1 Seite |