¿Qué otros idiomas tienen características y / o bibliotecas similares al formato de Perl?

StackOverflow https://stackoverflow.com/questions/236629

  •  04-07-2019
  •  | 
  •  

Pregunta

Puedo estar en minoría aquí, pero disfruto mucho Formatos de Perl . Especialmente me gusta poder envolver un texto largo dentro de una columna (& Quot; ~~ ^ & Lt; & Lt; & Lt; & Lt; & Lt; < !> lt; < < < < < < < < < & !> lt; " escribir cosas). ¿Hay otros lenguajes de programación que tengan características similares o bibliotecas que implementen características similares? Estoy especialmente interesado en cualquier biblioteca que implemente algo similar para Ruby, pero también tengo curiosidad sobre cualquier otra opción.

¿Fue útil?

Solución

FormatR proporciona formatos similares a Perl para Ruby.

Aquí hay un ejemplo de la documentación:

require "formatr"
include FormatR

top_ex = <<DOT
   Piggy Locations for @<< @#, @###
                     month, day, year

Number: location              toe size
-------------------------------------------
DOT

ex = <<TOD
@)      @<<<<<<<<<<<<<<<<       @#.##
num,    location,             toe_size
TOD

body_fmt = Format.new (top_ex, ex)

body_fmt.setPageLength(10)
num = 1

month = "Sep"
day = 18
year = 2001
["Market", "Home", "Eating Roast Beef", "Having None", "On the way home"].each {|location|
    toe_size = (num * 3.5)
    body_fmt.printFormat(binding)
    num += 1
}

Que produce:

   Piggy Locations for Sep 18, 2001

Number: location              toe size
-------------------------------------------
1)      Market                   3.50
2)      Home                     7.00
3)      Eating Roast Beef       10.50
4)      Having None             14.00
5)      On the way home         17.50

Otros consejos

Parece que recuerdo algo similar en Fortran cuando lo usé hace muchos años (sin embargo, podría haber sido una biblioteca de terceros).

En cuanto a otras opciones en Perl, eche un vistazo a Perl6::Form .

La función form reemplaza format en Perl6. Damian Conway en & Quot; Mejores prácticas de Perl " recomienda usar <=> con Perl5 citando los siguientes problemas con <=> ....

  • estáticamente definido
  • confiar en variables globales para config & amp; pkg vars para los datos que formatean
  • usa identificadores de archivo con nombre (solo)
  • no recursivo o reentrante

Aquí hay una <=> variación en el ejemplo de Ruby de Robert Gamble ....

use Perl6::Form;

my ( $month, $day, $year ) = qw'Sep 18 2001';
my ( $num, $numb, $location, $toe_size );

for ( "Market", "Home", "Eating Roast Beef", "Having None", "On the way home" ) {
    push @$numb,     ++$num;
    push @$location, $_;
    push @$toe_size, $num * 3.5;
}

print form 
    '   Piggy Locations for {>>>}{>>}, {<<<<}',
                          $month, $day, $year ,
    "",
    '  Number: location              toe size',
    '  --------------------------------------',
    '{]})      {[[[[[[[[[[[[[[[}       {].0} ',
     $numb,    $location,              $toe_size;

Existe la función Lisp (format ...) . Admite bucles, condicionales y muchas otras cosas divertidas.

por ejemplo (copiado del enlace anterior):

(defparameter *english-list*
  "~{~#[~;~a~;~a and ~a~:;~@{~a~#[~;, and ~:;, ~]~}~]~}")

(format nil *english-list* '())       ;' ==> ""
(format nil *english-list* '(1))      ;' ==> "1"
(format nil *english-list* '(1 2))    ;' ==> "1 and 2"
(format nil *english-list* '(1 2 3))  ;' ==> "1, 2, and 3"
(format nil *english-list* '(1 2 3 4));' ==> "1, 2, 3, and 4"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top