in reply to Variable Abstraction with strict

That is called Symbolic reference and is illegal under use strict pragma. You have to temporary disable use strict and enable it again after the print statement. #!/usr/bin/perl @a = (1, 2, 3); @b = (4, 5, 6); @c = (7, 8, 9); $x = 'b'; no strict 'refs'; print "@$x\n"; use strict 'refs';