¿Cómo puedo procesar una cadena de líneas múltiples una línea a la vez en Perl con un uso estricto en su lugar?

Estoy tratando de averiguar la forma correcta aprobada por PBP para procesar una cadena de varias líneas de una en una. Muchos codificadores de Perl sugieren tratar la cadena multilínea como un identificador de archivo, que funciona bien a menos que tenga "uso estricto" en su script. Luego, el compilador recibe una advertencia sobre la imposibilidad de utilizar una cadena como símbolo mientras se usan refs estrictos.

Aquí hay un ejemplo simple de trabajo del problema:

#use strict;
use warnings; 

my $return = `dir`;
my $ResultsHandle = "";
my $matchLines = "";
my $resultLine = "";
open $ResultsHandle, '<', \$return;
while (defined ($resultLine = <$ResultsHandle>)) {
    if ($resultLine =~ m/joe/) {
        $matchLines = $matchLines . "\t" . $resultLine;
    }
}
close($ResultsHandle);
print "Original string: \n$return\n";
print "Found these matching lines: \n$matchLines\n";

Observe que la línea de "uso estricto" está comentada. Cuando ejecuto este script sin uso estricto, obtengo lo que quiero y espero:

Original string: 
 Volume in drive D has no label.
 Volume Serial Number is 50D3-54A6

 Directory of D:\Documents and Settings\username\My Documents\Eclipse\myTestProject

09/18/2009  11:38 AM    <DIR>          .
09/18/2009  11:38 AM    <DIR>          ..
09/18/2009  11:36 AM               394 .project
09/18/2009  11:37 AM                 0 joe.txt
09/18/2009  11:37 AM                 0 joey.txt
09/18/2009  11:38 AM                 0 kurt.txt
09/18/2009  11:43 AM               497 main.pl
09/18/2009  11:38 AM                 0 shane.txt
               6 File(s)            891 bytes
               2 Dir(s)   6,656,188,416 bytes free

Found these matching lines: 
    09/18/2009  11:37 AM                 0 joe.txt
    09/18/2009  11:37 AM                 0 joey.txt

Pero este es el problema. Cuando elimino el comentario de la línea de "uso estricto", recibo la siguiente advertencia o error de Perl:

Can't use string ("") as a symbol ref while "strict refs" in use at D:/Documents and Settings/username/My Documents/Eclipse/myTestProject/main.pl line 8.

La línea 8 es "open $ ResultsHandle, '<', \ $ return;" línea, por cierto. Entonces, ya que Perl Best Practices me obliga a usar lo estricto, ¿cómo PBP espera que procese una cadena de varias líneas línea por línea? ¿Alguna sugerencia de la comunidad SO?

¡Gracias!

Respuestas a la pregunta(7)

Su respuesta a la pregunta