my $die = entangle( 1=>1, 1=>2, 1=>3, 1=>4, 1=>5, 1=>6 );
my $save_state = $die->save_state;
for (1..5) {
print "$die ";
$die = $save_state->restore_state;
}
# print: "2 1 3 2 5" or whatever
####
#!/usr/bin/perl -w
use Quantum::Entanglement;
my $die = entangle( 1=>1, 1=>2, 1=>3, 1=>4, 1=>5, 1=>6 );
print "Pre-observation: ".$die->show_states;
print "Observation: $die\n";
print "Post-observation: ".$die->show_states;
# print:
#
# Pre-observation: 1|1> 1|2> 1|3> 1|4> 1|5> 1|6>
# Observation: 3
# Post-observation: 1|3>
####
#!/usr/bin/perl -w
use strict;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
use Aspect qw(advice calls returns around) ;
my $aspect = advice(
calls(qr/^(Quantum|main)::(.*)/),
sub { printf "calling -> %s\n", $::thisjp->sub }
);
$aspect->enable;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
use Quantum::Entanglement;
sub foo {
my $die = entangle( 1=>1, 1=>2, 1=>3, 1=>4, 1=>5, 1=>6 );
print $die ; print "\n" ;
}
foo();
# print:
#
# calling -> main::foo
# calling -> main::entangle
# calling -> Quantum::Entanglement::_new
# calling -> Quantum::Entanglement::(""
# calling -> Quantum::Entanglement::_normalise
# 5
# calling -> Quantum::Entanglement::DESTROY
# calling -> Quantum::Entanglement::_rationalise_states
# calling -> Quantum::Entanglement::_unravel
# foo();
####
# set all non retained states to zero probability, leave others alone