Excuse me for dropping this into the discussion, but
this reminds me a proposal made (by me;-) in p5p last month :
define a new prototype (") that allows to define quotelike
functions. Example :
    sub rot13 (") {
        my $s = shift; $s =~ tr/A-Za-z/N-ZM-An-zm-A/; return $s;
    }
    print rot13/uryyb $jbeyq\n/;
    # the previous statement being equivalent to "print rot13(qq/uryyb
    # $jbeyq\n/);" if rot13 had a ($) prototype

See the threads:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-09/msg01718.html
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-09/msg01800.html

Aaron Sherman wrote in perl.perl6.language:
} On Tue, Oct 16, 2001 at 09:30:44AM -0700, David Wheeler wrote:
} > 
} > That's part of the reason that I almost never use here docs, but the
} > qq{} operator, instead. No need for a closing newline.
} 
} I have not read the RFC, but I do agree that qq is the way to go for
} formatted content. Or, perhaps something like it that in turn 
} resembles the s{}{} operator?
} 
}       qf{^\s+}{       Now is the time
}                       for all good men...};
} 
} eq
} 
}       sub qf ($pat,$str) {
}               $str =~ s/$pat//mg;
}               return $str;
}       }
}       qf('^\s+', qq{  Now is the time
}                       for all good men...});
} 
} eq
} 
}       qq{Now is the time\nfor all good men...};
} 
} That fits with the current trend and gives us a very flexible
} way to deal with just about any sort of formatting.
} 
} You would want to allow the usual m{} options after the second
} close, but I think the default behavior should be that of m{}mg
} 
} I also think that the above should be abbreviated as:
} 
}       qf{}{   Now is the time
}               for all good men...};
} 
} since useful defaults are always good.

-- 
Rafael Garcia-Suarez

Reply via email to