还有哪些其他语言的function和/或库类似于Perl的格式?

我可能在这里是少数,但我非常喜欢Perl的格式 。 我特别喜欢能够在一列中包裹一段长文本(“~~ ^ <<<<<<<<<<<<<<<<”类型的东西)。 是否有其他具有类似功能的编程语言或实现类似功能的库? 我对任何为Ruby实现类似功能的库特别感兴趣,但我也对其他选项感到好奇。

FormatR为Ruby提供类似Perl的格式。

以下是文档中的示例:

require "formatr" include FormatR top_ex = < 

哪个产生:

  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 

我似乎在多年前使用Fortran时会想起类似的东西(但它很可能是第三方库)。

至于Perl中的其他选项,请查看Perl6::Form

form函数替换Perl6中的format 。 “ Perl最佳实践 ”中的Damian Conway建议使用Perl6::Form with Perl5,引用以下format问题….

  • 静态定义
  • 依赖于config&pkg vars的全局变量来处理它们所格式化的数据
  • 使用命名文件句柄(仅)
  • 不是递归的或可重入的

这是Robert Gamble对Ruby示例的Perl6::Form变体….

 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; 

有Lisp (format ...)函数 。 它支持循环,条件和一大堆其他有趣的东西。

例如(从上面链接复制):

 (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"