next up previous
Next: Sobre este documento...

Universidad de La Laguna. Escuela Técnica Superior de Ingeniería Informática
Lenguajes y Herramientas de Programación
 
 


Nombre:


  1. Salida con Formato:

    Indique como saldrá formateada la salida del siguiente código:

    my @items = qw(un dos tres);
    my $format = "Los items son:\n".("%10s\n"x @items);
    printf $format, @items;
    
  2. Muerte Prematura:

    Considere el siguiente código:

    open FILEHANDLE, shift;
    while (<FILEHANDLE>) {
      print;
    }
    
    ¿Existe el riesgo de ``muerte'' prematura debido a que una línea contenga sólamente "0"? Pruebe con varios posibles ficheros de entrada. Observe que el operador de lectura <FILEHANDLE> incluye el retorno de carro \n en \$_.
  3. Explique los resultados en los pasos 7, 8, 9 y 10 del ejemplo:
    DB<3> $g = gmtime
    DB<4> p $g
    Thu Mar 31 17:47:13 2005
    DB<5> $c = time
    DB<6> p $c
    1112291278
    DB<7> p localtime $c
    5847183121054891
    DB<8> p "".localtime $c
    Thu Mar 31 18:47:58 2005
    DB<9> p scalar(localtime $c)
    Thu Mar 31 18:47:58 2005
    DB<10> p scalar localtime(time-(24*60*60)), "\n";
    Wed Mar 30 19:14:33 2005
    

  4. Usando el depurador de Perl calcule que día del calendario fué hace 500 días.

  5. ¿Como ejecuto los tests de mi distribución?
  6. ¿Donde residen los tests de mi distribución?
  7. ¿Que extensión deben tener los programas de prueba?
  8. ¿Cuál es la diferencia entre los operadores == y eq?
  9. ¿Cuáles son los parámetros de la función ok?
  10. ¿Cuáles son los parámetros de la función is?
  11. ¿Porqué es conveniente nombrar las pruebas con un nombre que empiece por un número?
  12. ¿Como puedo ejecutar los tests en modo verbose?
  13. ¿Porque decimos que el diseño de la interfaz debe preceder a la implementación de las pruebas?
  14. ¿Que hace la función is_cloudy? ¿Y la función is_sunny? ¿En que módulo están?
  15. ¿Como puedo probar un código que produce la detención del programa?
  16. ¿Que contiene la variable $@?
  17. ¿Que hace prove?
  18. ¿Cómo puedo controlar el orden en que se ejecutan los tests?
  19. ¿Que hace la función like?
  20. ¿Que contiene la variable $#-? ¿Y $+?
  21. ¿Porqué la función use_ok es llamada dentro de un BEGIN?
  22. ¿Que es una prueba SKIP?
  23. ¿Que es una prueba TODO?
  24. Durante el desarrollo detecta un fallo en su código. Una vez resuelto el problema ¿Cómo debe afectar la detección del fallo a la fase de pruebas?
  25. ¿Que hace la función pod_file_ok? ¿A que módulo pertenece?
  26. ¿Que hace el operador tr?
  27. ¿Qué devuelve el operador tr?
  28. ¿Que hace la opción d de tr?

  29. ¿Que hace la llamada use Test::More qw(no_plan);?
  30. ¿Que hace la función can_ok? ¿Qué argumentos tiene?
  31. Explique las causas de la siguiente conducta del depurador:
      DB<1> $a='4+5'
      DB<2> print "($&) " while ($a =~ m/(\G\d+)/gc) or ($a =~ m/(\G\+)/gc);
    (4) (+) (5)
      DB<3> $a='4+5' # inicializamos la posición de búsqueda
      DB<4> print "($&) " while ($a =~ m/(\G\d+)/g) or ($a =~ m/(\G\+)/g);
    (4)
      DB<5> $a='4+5'
      DB<6> print "($&) " while ($a =~ m/\G\d+|\G\+/g)
    (4) (+) (5)
    
  32. ¿Que diferencia hay entre is_deeply e is?

  33. ¿Que argumentos recibe la función throws_ok? ¿En que módulo se encuentra?

  34. ¿Que hace el comando HARNESS_PERL_SWITCHES=-MDevel::Cover make test?

  35. ¿Cómo se interpreta el cubrimiento de las sentencias?

  36. ¿Cómo se interpreta el cubrimiento de las subrutinas?
  37. ¿Cómo se interpreta el cubrimiento de las ramas? ¿y las condiciones lógicas?
  38. ¿En cual de estos factores es realista y deseable lograr un cubrimiento del %100 con nuestras pruebas?
  39. ¿Cómo puedo ejecutar los tests con estadísticas de cubrimiento si mi shell es csh o tcsh?
  40. ¿Que pasa si después de haber desarrollado un número de pruebas cambio la interfaz de mi API?

  41. ¿Que hace el comando perl -d:DProf programa? ¿Para que sirve?

  42. ¿Puede ser que una subrutina que se haya ejecutado no aparezca en la lista de presentada por dprofpp?

  43. ¿Que diferencia hay entre las funciones size y total_size del módulo Devel::Size?

  44. ¿Que hace la función warning_like? ¿En que módulo está?

  45. ¿Que hace la función warning_is? ¿En que módulo está?

  46. ¿Que hace la función warning_are? ¿En que módulo está?

  47. ¿Cómo funciona el módulo Test::NoWarnings?

  48. ¿Que módulo contiene la función throws_ok? ¿Que hace esa función?

  49. ¿Que hace la función lives_ok? ¿En que módulo está?
  50. ¿Que hace el operador *? ?
  51. ¿Que hace el operador +? ?

  52. ¿Que se imprimirá al ejecutar el siguiente código?
    $a = 3.14159;
    my $a = 5;
    *b = *a;
    print $b;
    

  53. ¿Que se imprimirá al ejecutar el siguiente código?
    sub mundo { "mundo\n" }
    
    *hola = \&mundo;
    $mundo = "hola";
    $hola = "bienvenido";
    print "$mundo ",&hola();
    

  54. Dada la asignación:
    $h = *$t{HASH};
    
    ¿Cuál es el tipo de $t? ¿Que queda en $h?

  55. Explique el mensaje de advertencia en la compilación del siguiente programa:
    lhp@nereida:~/Lperl/src$ cat -n mytypeglob2.pl
     1  #!/usr/bin/perl  -w
     2  use strict;
     3
     4  our $a;
     5  my $b;
     6
     7  *a = *b;
     8  $a = 4;
     9  print "$b\n";
    lhp@nereida:~/Lperl/src$ perl -c mytypeglob2.pl
    Name "main::b" used only once: possible typo at mytypeglob2.pl line 7.
    mytypeglob2.pl syntax OK
    

  56. Suponga que quiere escribir una función mypush que actúa exactamente como lo hace push: La llamada push @a, 4, 5, 6 empuja los elementos de la lista (4, 5, 6) en @a. ¿Como debería ser el prototipado de dicha subrutina?

  57. Describa en palabras los dominios inicial y final de las funciones:
    1. La función map.
    2. La función splice
    3. La función first:

  58. ¿Cual es el significado de una expresión de la forma (?: ...) ?
  59. Escriba una expresión regular para reconocer las cadenas
  60. Escriba una expresión regular para reconocer los flotantes
  61. Escriba una expresión regular para reconocer los comentarios no anidados en lenguaje C
  62. ¿Cómo se llama el módulo Perl que contiene las respuestas a las tres preguntas anteriores?
  63. ¿Cual es el significado de \G?
  64. ¿Que hace la opción c en una expresión regular?
  65. ¿Que hace la opción s en una expresión regular?
  66. ¿Que hace la opción x en una expresión regular?
  67. ¿Que hace la opción m en una expresión regular?
  68. ¿Que hace la opción e en una expresión regular?
  69. ¿Que hace la opción g en una expresión regular en un contexto de lista?
  70. ¿Que hace la opción g en una expresión regular en un contexto escalar?
  71. ¿Que convenio se sigue en Perl para indicar que una subrutina es privada?
  72. Si la variable $a fue declarada en el módulo PL::Tutu::Lexical::Analyzer, ¿Como debo declararla para accederla desde otro módulo?
  73. Si la variable $a fue declarada en el módulo PL::Tutu::Lexical::Analyzer, ¿Como debo accederla desde otro módulo?
  74. Si la variable $a fue declarada en el módulo PL::Tutu::Lexical::Analyzer, ¿Como puedo accederla sin necesidad de especificar su nombre completo?
  75. ¿Cómo se llama la variable de entorno que nos permite añadir directorios al camino de búsqueda de los módulos?
  76. ¿Cuál es la diferencia entre los operadores == y eq?

  77. ¿Que contiene la variable $& ?

  78. ¿Que contiene la variable $`?

  79. ¿Que contiene la variable $'?

  80. ¿Que contienen las variables $1, $2, $3, etc. ?

  81. ¿Que contiene la variable $+ ?

  82. ¿Que contiene la variable @- ?

  83. ¿Que contiene la variable @+ ?

  84. ¿Que contiene la variable $#- ?

  85. ¿Que contiene la variable $#+ ?

  86. ¿Que hace el operador tr?
  87. ¿Qué devuelve el operador tr?
  88. ¿Que hace la opción d de tr?
  89. Explique la conducta de la siguiente sesión con el depurador:
      DB<1> $a = '"Focho \"mucha\" chufa"'
      DB<2> print $a
    "Focho \"mucha\" chufa"
      DB<3> print $& if $a =~ m{^"([^"]|\\")*"}
    "Focho \"
      DB<4> print $& if $a =~ m{^"(\\"||[^"])*"}
    "Focho \"mucha\" chufa"
    
  90. ¿Que hace la llamada use Test::More qw(no_plan);?
  91. ¿Que hace la función can_ok? ¿Qué argumentos tiene?
  92. Explique las causas de la siguiente conducta del depurador:
      DB<1> $a='4+5'
      DB<2> print "($&) " while ($a =~ m/(\G\d+)/gc) or ($a =~ m/(\G\+)/gc);
    (4) (+) (5)
      DB<3> $a='4+5' # inicializamos la posición de búsqueda
      DB<4> print "($&) " while ($a =~ m/(\G\d+)/g) or ($a =~ m/(\G\+)/g);
    (4)
      DB<5> $a='4+5'
      DB<6> print "($&) " while ($a =~ m/\G\d+|\G\+/g)
    (4) (+) (5)
    
  93. ¿Que contiene la variable $@?
  94. Explique la salida del siguiente programa:
    > cat dollar1slash1.pl
    #!/usr/bin/perl
    
     $a = "hola juanito";
     $b = "adios anita";
    
     $a =~ /(ani)/;
     $b =~ s/(adios) *$1/\1 boni$1/;
     print "$b\n";
    > dollar1slash1.pl
    adios boniadiosta
    
    ¿Que diferencia hay entre $1 y \1?
  95. ¿Cómo puedo saber con que versión de Perl estoy trabajando?
  96. Cuando el intérprete Perl encuentra una sentencia
    use Este::Modulo;
    
    ¿Donde busca el fichero Modulo.pm?
  97. ¿Con que opción debo usar Perl para ejecutar un programa en la línea de comandos?
  98. ¿Cómo se llama el programa que me permite crear el esqueleto para una distribución de un módulo? ¿Con que opciones debo llamarlo?
  99. ¿En que subdirectorio queda el fichero conteniendo el esqueleto del módulo creado Tutu.pm?
  100. ¿Cuál es la función de MANIFEST?
  101. ¿Qué es Makefile.PL? ¿Cuál es su función? ¿Que significa la frase looks good?
  102. ¿Con que comando se crea el Makefile para trabajar en la plataforma actual?
  103. ¿Cómo se puede ver la documentación de un módulo?
  104. ¿Que hacen los siguientes comandos pod? si tiene dudas.
    =head1 cabecera 
    =head2 cabecera 
    =item texto
    =over N
    =back
    =cut
    =pod
    =for X
    =begin X
    =end X
    
  105. ¿Que secuencia de comandos conocida como mantra de instalación es necesario ejecutar para instalar un módulo?
  106. ¿Cual es la función del directorio t?
  107. ¿Que tipo deben tener los programas de prueba para que make test los reconozca como pruebas?
  108. ¿Que hace la declaración package nombredepaquete?
  109. ¿Cual es la función de la declaración use 5.008004?
  110. ¿Cuál es la función de la declaración use strict?
  111. ¿Cuál es la función de la declaración use warnings?
  112. ¿Que diferencia hay entre use warnings y perl -w?
  113. ¿Cuál es la función de la declaración use Carp? ¿Que diferencia hay entre croak y die?
  114. ¿Qué hace la declaración our?
  115. ¿Qué es una variable de paquete?
  116. ¿Cuál es el nombre completo de una variable de paquete?
  117. ¿En que variable especial se situán los argumentos pasados a una subrutina?
  118. ¿Que hace la declaración local?
  119. ¿Cómo se declara una variable léxica?
  120. ¿Cuál es el prefijo para los hashes?
  121. ¿Cómo se hace referencia a un elemento de un hash %h de clave k?
  122. ¿Cómo se hace referencia a un elemento de un array @a de índice 7? ¿Que lugar ocupa ese elemento en el array?
  123. ¿Cuál es el significado de undef?
  124. ¿Cuál es el prefijo para las subrutinas?
  125. Señale la diferencia entre
    my ($input) = @_;
    
    y
    my $input = @_;
    
  126. ¿Que es \$target?.
  127. Toda referencia es un escalar: ¿Cierto o falso?
  128. ¿Que diferencia hay entre use y require? ¿La línea require Exporter se ejecuta en tiempo de compilación o en tiempo de ejecución?
  129. ¿Que hace la línea our @ISA = qw(Exporter)?.

  130. ¿Que hace la línea our @EXPORT = qw( compile compile_from_file)?
  131. ¿Que diferencia hay entre EXPORT Y EXPORT_OK?.
  132. ¿Que hace la línea our $VERSION = '0.01?
  133. ¿Que valor tiene una variable no incializada? ¿y si es un array?
  134. ¿Que es un array anónimo?
  135. ¿Que es un hash anónimo?
  136. ¿Que hace el operador =>?.
  137. ¿En que lugar se dejan los ejecutables asociados con una distribución? ¿Cómo se informa a Perl que se trata de ejecutables?
  138. ¿Cuál es la función de MANIFEST.SKIP? ¿Que hace make manifest?
  139. ¿Que hace la opción -I? ¿Porqué la primera línea de tutu.pl comienza:
    #!/usr/bin/perl -w -I../lib/?
  140. ¿Cómo puedo saber lo que hace el módulo lib? ¿Qué hace la línea use lib ('../lib') en el programa tutu?
  141. ¿Cómo se crea una distribución?
  142. ¿Que devuelve -r $input_name?
  143. ¿Cuál es la función de la variable mágica $/? ¿Que se leerá en la línea 86
    85   local $/ = undef;
    86   my $input = <$fhi>;
    
  144. Si $targetref es una referencia a una cadena ¿Cómo se denota a la cadena referenciada por $targetref? Explique la línea
    92   $fh->print($$targetref);
    
  145. Sea el código:
    @a = undef;
    if (@a) { &tutu(); }
    
    ¿Se ejecuta &tutu?

  146. ¿Que hacen cada uno de estos comandos del depurador?
     l [ln|sub]                               
     T                       
     - or .                                  
     s [expr]   
     v [line]                                
     n [expr]   
     f filename                              
     <CR/Enter>  
     /pattern/ ?patt?                        
     r           
     c [ln|sub]  
     L           
     b [ln|event|sub] [cnd] 
     ! [N|pat]  
     B ln|*      
     H [-num]   
     x|m expr       
     p expr         
     S [[!]pat]     
     X [Vars]       
     y [n [Vars]]
    

  147. ¿Que diferencias hay entre usar la opción -w y use warnings?

  148. Explique la línea:
    perl -e 's/nereida\.deioc\.ull\.es/miranda.deioc.ull.es/gi' -p -i.bak *.html
    

  149. Plain Old Documentation:
    1. ¿Cómo se puede ver la documentación de un módulo Perl?

    2. ¿Como puedo ver la documentación de una función/primitiva Perl?

    3. ¿Que hacen los siguientes comandos?
      =head1 Texto
      =head2 Texto
      =head3 Texto
      =head4 Texto
      =over número
      =item stuff
      =back
      =cut
      =pod
      =begin formato
      =end formato
      =for format texto...
      

    4. Indique que salida produce el siguiente fragmento de pod: C<$a E<lt>=E<gt> $b>

  150. ¿Como vuelco los contenidos de una estructura de datos anidada?

  151. Explique el significado de estas opciones en una expresión regular:

      Significado
    e  
    g  
    i  
    m  
    o  
    s  
    x  

  152. Explique el significado de las variables que conozca:



    $&  
    $`  
    $'  
    $1, $2, $3, etc.  
    $+  
    @-  
    @+  
    $#-  
    $#+  

  153. ¿Que efecto tiene el siguiente código?:
    @text = (1, 2, 3, 4, 5);
    @text[@text] = 0;
    

  154. ¿Como puedo saber si la función que estoy escribiendo fué llamada en un contexto de lista?

  155. Explique que salida produce la transformación:
    @a = grep { defined } map { /(\d+)/; $1 } glob('/tmp/*')
    

  156. Esplique las líneas:
    eval {
      my ($a, $b) = (10, 0);
      my $c = $a / $b;
    };
    
    print "$@" if $@;
    

  157. Explique la salida del siguiente programa:
    lhp@nereida:~/Lperl/src$ cat -n privacy.pl
     1  #!/usr/bin/perl -w
     2  use strict;
     3  package tutu;
     4  my $a = 10;
     5
     6  package titi;
     7
     8  if (defined($tutu::a)) { print "$tutu::a\n" }
     9  else { print "No esta definida \$tutu::a\n"};
    10  print "\$a = $a\n";
    

  158. Estudie el programa y explique la salida a la que da lugar. La subrutina peer definida en la línea 22 llama a la subrutina interior. ¿Podría identificar que subrutina es llamada? ¿La de la línea 5 o la de la línea 14?
    lhp@nereida:~/Lperl/src$ cat -n localsub.pl
     1  #!/usr/bin/perl
     2  use strict;
     3  use warnings;
     4
     5  sub interior {
     6    my $x = shift;
     7    print "En sub 'interior global': $x\n";
     8  }
    9
    10  sub exterior {
    11    my $x = $_[0];
    12    no strict 'refs';
    13    no warnings;
    14    local *interior = sub {
    15      print "En sub interior anidada\n";
    16      return shift() - 1
    17    };
    18    print "En sub exterior. Llamo a la sub 'peer(5)'\n";
    19    peer(5);
    20  }
    21
    22  sub peer {
    23    print "En sub peer. Llamo a 'interior'\n";
    24    interior(shift())."\n";
    25  }
    26
    27  exterior(2);
    28  interior(3);
    
    Al ejecutar el programa localsub.pl se produce la siguiente salida:
    lhp@nereida:~/Lperl/src$ localsub.pl
    En sub exterior. Llamo a la sub 'peer(5)'
    En sub peer. Llamo a 'interior'
    En sub interior anidada
    En sub 'interior global': 3
    
  159. Tengo una subrutina en un package que no quiero que sea visible desde otros paquetes. ¿Que puedo hacer para conseguirlo? (Recuerde que las subrutinas son siempre globales).
  160. Explique cual será la salida del siguiente programa (la macro __PACKAGE__ retorna el nombre del paquete
  161. Ponga un ejemplo de uso selectivo de typeglob

  162. ¿Cuál es el efecto de un prototipo de la forma &?

  163. Explique la siguiente salida:
    casiano@beowulf:~/src/perl$ perl -de 0
    DB<1> require Data::Dumper
    
    DB<2> require "Data::Dumper"
    Can't locate Data::Dumper in @INC (@INC contains: /etc/perl
    /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8
    /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8
    /usr/share/perl/5.8 /usr/local/lib/site_perl .) at (eval
    18)[/usr/share/perl/5.8/perl5db.pl:628] line 2.
    
    Observe que el primer require no produce ninguna queja, el segundo si. Consulte perldoc -f require para entender este detalle.

  164. Explique el significado de las siguientes sentencias y que queda en los diferentes arrays después de ejecutarlas:
      DB<1> opendir D,'./'
      DB<2> @n = readdir D
      DB<3> @nd = map { {N=>$_, D=>-M $_}} @n
      DB<4> @snd = sort { $b->{D} <=> $a->{D} } @nd
      DB<5> @sn = map { $_->{N} } @snd
    

  165. Ponga un ejemplo de clausura

  166. Tengo una subrutina en un package que no quiero que sea visible desde otros ficheros. ¿Que puedo hacer para conseguirlo? (Recuerde que las subrutinas son siempre globales).

  167. ¿Que variable de entorno gobierna la búsqueda de módulos?

  168. El siguiente módulo exporta la subrutina titi:
    lhp@nereida:~/Lperl/src$ cat -n myimport.pm
     1  package myimport;
     2  use strict;
     3
     4  sub titi {
     5    print "Hola\n";
     6  }
     7
     8  sub import {
     9
    10    my ($caller_package) = caller;
    11    {
    12      no strict 'refs';
    13      *{"$caller_package::titi"} = \&titi;
    14    }
    15  }
    16
    17  1;
    
    El código contiene un error ¿Cual es?

  169. ¿Que subrutina es llamada siempre que una subrutina no existe? ¿Donde queda el nombre de la subrutina llamada?

  170. Supongamos el módulo:

    package Trivial::Tutu;
    our @EXPORT = qw(uno dos);
    our @EXPORT_OK = qw(tres cuatro cinco);
    use Exporter;
    our @ISA = qw(Exporter);
    

    Indique que es importado y que no cuando se usan las siguientes declaraciones: la exportación:

    1. use Trivial::Tutu;

    2. use Trivial::Tutu qw(uno dos)

    3. use Trivial::Tutu qw(tres cinco)

    4. use Trivial::Tutu();

    5. use Trivial::Tutu(siete);

  171. ¿Que opción debo pasar al instalar un módulo en la llamada perl Makefile.PL si no soy el administrador del sistema?

  172. ¿Cuales son los pasos para instalar un módulo usando el módulo CPAN?


  173. Explique que hace la secuencia de comandos CPAN:
    o conf urllist unshift ftp://ftp.rediris.es/mirror/CPAN/
    o conf commit
    



  174. ¿Con que comando creamos la estructura de directorios y ficheros necesarios para la creación de un módulo Tutu::Titi?

  175. ¿Cuál es la función del fichero MANIFEST? ¿Cuál es la función del fichero MANIFEST.SKIP?


  176. Explique el significado de la prueba:
    use strict;
    use Test::More  tests => 11;
    
    BEGIN { use_ok('Algorithm::Knap01DP', qw/Knap01DP ReadKnap/); }
    



  177. ¿Cómo puedo rápidamente encontrar la versión de un módulo instalado?

  178. ¿Cómo puedo saber donde está instalado un módulo?

  179. ¿Que hace la opción EXE_FILES de WriteMakefile?

  180. ¿Que hace el prototipo &?
  181. ¿Que es un stash?
  182. ¿Que hace el pragma use subs?
  183. ¿Que hace el paquete CORE?
  184. ¿Que hace el paquete CORE::GLOBAL?
  185. ¿Que ocurre cuando un código esta rodeado de un BEGIN?
  186. Cual es la secuencia de pasos a la que da lugar la sentencia:
    use Modulo::Interesante qw(one two);
    
  187. Explique las variables @EXPORT, @EXPORT_OK y %EXPORT_TAGS
  188. Explique las diferencias en:
    use NuestroModulo;         
    use NuestroModulo qw(...); 
    use NuestroModulo ();      
    use NuestroModulo qw(:TAG1)
    
  189. ¿Que hace la etiqueta especial :DEFAULT?
  190. Describa los pasos para instalar un módulo ( a mano)
  191. Describa los pasos para instalar un módulo ( usando CPAN)
  192. Explique la línea:
    nereida:~> perl -MModule::CoreList -e \
       'print Module::CoreList->first_release("Data::Dumper")."\n"'
    
  193. ¿Que hace la opción -l de perldoc?
  194. ¿Que provee el módulo ExtUtils::Installed? ¿Que devuelve $instmod->modules()? ¿Que devuelve $inst->files($mod)?
  195. ¿Que hace el comando o conf?
  196. ¿Que es un bundle? ¿Que hace el comando autobundle CGI Crypt::Rot13 Date::Christmas Date::Manip? ¿Que hace el comando autobundle?
  197. ¿Que es pp?
  198. ¿Cómo se llama la función que crea un objeto?
  199. ¿Que hace h2xs? Enumera las opciones. Liste los directorios y ficheros creados.
  200. ¿Que es Makefile.PL? ¿Que módulo usa?
  201. ¿cual es el significado de la opción EXE_FILES de WriteMakefile.?
  202. ¿Que es el MANIFEST?
  203. ¿Que hace Test::Kwalitee?
  204. ¿Que hace Test::LectroTest?
  205. Explique las líneas:

    DB<7> $ctg = Gen { scalar localtime $tg->generate( @_ ) }
    DB<8> print $ctg->generate()."\n" for 1..3
    

  206. Explique las líneas:
    lhp@nereida:~/Lperl/src/perl_testing_adn_examples/chapter_03/Algorithm-Knap01DP-0.25$ cat -n t/03lectro.t
     1  use strict;
     2  use Test::More;
     3  use Test::LectroTest::Generator qw(:common);
     4  use List::Util qw(sum);
     5
     6  use Algorithm::Knap01DP;
     7
     8  my $t = shift || 100;
     9  plan tests => $t;
    10  my ($C, @sol);
    11  for (1..$t) {
    12    my $weights = List(Int(range => [5,100], sized=>0), length => 10);
    13    my @w = @{$weights->generate};
    14    my @p = @w;
    15    my $set = List(Bool, length => 10);
    16    do {
    17      @sol = @{$set->generate};
    18      $C = sum( @w[ grep { $sol[$_] } 0..9 ] );
    19    } while ($C == 0);
    20    my $knap = Algorithm::Knap01DP->new( capacity => $C, weights => \@w, profits => \@p);
    21    $knap->Knap01DP();
    22    is($C, $knap->{tableval}[-1][-1], "Random subset-sum problem");
    23  }
    
  207. ¿Que array contiene las clases de las que hereda una clase?

  208. ¿quien es el objeto, la referencia o el referente?
  209. ¿Como se debe llamar el método de destrucción?
  210. ¿Que métodos existen en la clase UNIVERSAL?
  211. ¿Cómo se llama el módulo que permite sobrecargar los operadores?
  212. ¿Que convenio en los nombres se sigue para indicar privacidad?
  213. ¿Cuál es el primer argumento de un método de clase?
  214. ¿Cuál es el primer argumento de un método de objeto?
  215. Todo método puede ser llamado como una subrutina ordinaria. ¿Cierto o falso?
  216. ¿Que contiene $AUTOLOAD?
  217. ¿Que argumentos recibe AUTOLOAD?
  218. ¿Que subrutina se ejecuta cuando negamos un módulo?
  219. ¿Que provee el módulo Class::Struct?
  220. ¿Que provee el módulo Class::Accessor?
  221. Liste alguna función en List::Util
  222. ¿Cómo se llama el programa que permite generar parejas de claves pública-privada?
  223. ¿Cómo se llama el programa que permite copiar la clave pública en la máquina remota?
  224. ¿Cómo se llama el programa que permite copiar ficheros entre dos máquinas?
  225. ¿En que directorios deben estar los ficheros relacionados con la ssh?
  226. Enumere los pasos en la búsqueda de un metodo de un objeto.
  227. $y = 0 +$x donde $x es una referencia. ¿Que queda en $y?
  228. Escriba una línea de código en el que le de el nombre tutu a la subrutina referenciada por $x
  229. ¿Que diferencia hay entre las dos líneas?
    use overload "*"   => \&fmul,
                 "+"   => "fadd",
    

  230. ¿Que ocurre cuando se sobrecarga el operador/clave 0+?
  231. ¿Cuales son los argumentos de un manejador de una operación sobrecargada?
  232. Enumere los pasos en la búsqueda de un manejador de una operación sobrecargada
  233. ¿Que es nomethod? ¿Con que argumentos es llamado?
  234. ¿Qué hace fallback?
  235. ¿Que función de overload es la que permite la sobrecarga de constantes? ¿Que argumentos admite? ¿Que argumentos recibe un manejador de sobrecarga de constantes?
  236. ¿Que hace el módulo P5NCI?
  237. ¿Que hace el módulo Inline::C?




next up previous
Next: Sobre este documento...
Lenguajes y Herramientas de Programacion 2007-06-01