Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1a3a695
commit 21fb46d
Showing
1 changed file
with
135 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
Perl 5 Porters Weekly: September 10-September 16, 2012 | ||
====================================================== | ||
|
||
Welcome to Perl 5 Porters Weekly, a summary of the email traffic on | ||
the perl5-porters email list. Once again subroutine signatures dominated | ||
the list. I'll put all of the discussion about them at the end of this | ||
summary. | ||
|
||
This week's dusty thread is [CALL FOR DOCS: how to dual life?][1] from the | ||
week of August 6, 2012. Rik was looking for a volunteer to document the | ||
process of dual-lifing core code. He specifically called out Tie::Scalar and | ||
Time::local. Anyone have any insight into this? Contact [Ricardo | ||
Signes][2]. | ||
|
||
This week's quote of the week is about an epic csh behavior relating to | ||
getcwd. As if you needed more reasons to [avoid csh][]. | ||
|
||
Csh does not rely on PWD. Instead, it does a getcwd all by itself. | ||
It then prepends 'set cwd =' and evals the result. Thus interesting | ||
things happen if the directory happens to have any csh metacharacters | ||
in its name. | ||
|
||
Topics this week: | ||
|
||
* EXISTS and SCALAR return values are treated differently | ||
* 5.14.3 approaches | ||
* PATCH: pack()ing long words | ||
* rxres_save etc (was Re: Fix for recursive substitution) | ||
* given/when/~~ "final" thoughts (ha ha ha) | ||
* Changing the Perl error message when a module is not found | ||
* Named prototypes (again) | ||
|
||
**EXISTS and SCALAR return values are treated differently** | ||
|
||
I saved this thread because Yves Orton mentioned he had built some code to | ||
collect and show detailed hash utilizaton stats. The background for this | ||
thread had to do with the return values of EXISTS and SCALAR in tied hashes. | ||
|
||
[Read the thread][3] | ||
|
||
**5.14.3 approaches** | ||
|
||
Dominic Hargreaves announced that he's doing some work to get a 5.14.3 | ||
maintenance release shipped, and so was looking for any overlooked patches | ||
which hadn't been part of the cherrymaint process. The first RC is due in | ||
September. | ||
|
||
[Read the announcement][4] | ||
|
||
**PATCH: pack()ing long words** | ||
|
||
[Last month][5], I noted that David Cantrell was proposing a new pack syntax that | ||
would take arbitrary length words. This week he submitted a set of patches | ||
to reserve the proposed syntax in blead. | ||
|
||
[Read the thread][6] | ||
|
||
**rxres_save etc (was Re: Fix for recursive substitution)** | ||
|
||
Nicholas Clark wrote an email saying that rxres_save() seems to do too much | ||
work in the perl core. The extra steps apparently date back to a 1997 patch | ||
intended for DBD::Oracle. Both Dave Mitchell and Yves Orton think a rethink | ||
and clean up is overdue for the way regex state is saved for potentially | ||
re-entrant/recursive calls. | ||
|
||
[Read the thread][7] | ||
|
||
**given/when/~~ "final" thoughts (ha ha ha)** | ||
|
||
Ricardo posted a summary of his view of smartmatch: | ||
|
||
$x ~~ undef | ||
$x ~~ $overloaded_object | ||
$x ~~ sub {} | ||
$x ~~ regex | ||
...or fail | ||
|
||
...with when: | ||
|
||
when ("foo") # str eq | ||
when (12345) # num == | ||
when ($x) # ~~ | ||
when { ... } # block evaluates true | ||
|
||
when breaks the enclosing topicalizer | ||
|
||
And later, he wrote: | ||
|
||
I feel like no matter what, given/when/~~ are really balancing on the | ||
very very thin edge of "can be worth the complexity." I really do not | ||
relish the idea of all the required work being done only to realize that | ||
we've gone from unbearable to just barely bearable. | ||
|
||
Which got a couple of +1s and surprisingly few replies given how popular | ||
this thread was two weeks ago. | ||
|
||
[Read the thread][8] | ||
|
||
**Changing the Perl error message when a module is not found** | ||
|
||
Michael Stapelberg posted a suggestion to make the "module not found" | ||
error message friendlier to newbies. One proposed variation I liked was | ||
|
||
Can't locate LWP/UserAgent.pm in @INC (@INC contains: /etc/perl | ||
/usr/local/lib/perl/5.12.4 /usr/local/share/perl/5.12.4 /usr/lib/perl5 | ||
/usr/share/perl5 /usr/lib/perl/5.12 /usr/share/perl/5.12 | ||
/usr/local/lib/site_perl .) at -e line 1. | ||
BEGIN failed--compilation aborted at -e line 1. | ||
|
||
The above error is most likely caused by Perl not finding the module | ||
LWP::UserAgent. Try installing LWP::UserAgent from your distribution | ||
or via CPAN. Run 'perldoc perlmodinst' for more information. | ||
|
||
The thread veered into a digression about having or adding "real" exception | ||
objects into the core (someday.) | ||
|
||
[Read the thread][9] | ||
|
||
**Named prototypes (again)** | ||
|
||
I O U a summary to be named later | ||
|
||
|
||
[avoid csh]: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ | ||
[1]: http://byte-me.org/perl-5-porters-weekly-august-6-august-12-2012/#5 | ||
[2]: mailto:rjbs@cpan.org | ||
[3]: http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191905.html | ||
[4]: http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg192050.html | ||
[5]: http://byte-me.org/perl-5-porters-weekly-august-13-august-19-2012/#1 | ||
[6]: http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg192076.html | ||
[7]: http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg192287.html | ||
[8]: http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg192299.html | ||
[9]: http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg192365.html | ||
|
||
|