no strict; # just for this demo use warnings; my $ref = \do{ my $anon = 42 }; my $deref = ${ $ref }; print '$ref: ' , "$ref\n"; print '$deref: ' , "$deref\n"; print '$anon: ' , "$anon\n"; __END__ Output: Name "main::anon" used only once: possible typo at ./anon-scalar-ref-demo.pl line 9. $ref: SCALAR(0x9dbefd8) $deref: 42 Use of uninitialized value $anon in concatenation (.) or string at ./anon-scalar-ref-demo.pl line 9. $anon: #### my @arr = (1, 2, 3); my $ref = \@arr;