还有哪些其他语言的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"