<a href="https://metacpan.org/module/File::Slurp" target="_blank">https://metacpan.org/module/File::Slurp</a>  <a href="https://metacpan.org/module/File::Slurp::Unicode" target="_blank">https://metacpan.org/module/File::Slurp::Unicode</a><br>


One of my favorite modules... and its unicode brother<br>
<div style="margin-left:40px">my $file_contents = read_file('somefile');<br>
</div>
doesn't get much easier than that<br>
<br><br><br>
but if you DO use 'open' 'close' etc... <a href="http://search.cpan.org/%7Epjf/autodie-2.10/lib/autodie" target="_blank">http://search.cpan.org/~pjf/autodie-2.10/lib/autodie</a><br>
forces ancient built-ins throw exceptions rather return true or false... no more silent failures (mostly)<br><br>
<br><br><a href="https://metacpan.org/module/Throwable::Error" target="_blank">https://metacpan.org/module/Throwable::Error</a><br><br>very
 cool exception class that provides accessors 'message' and 'stacktrace'
 (that provides both of those) but will stringify to the message.  By 
extending the class you can very easily add more accessors.  for 
instances, if for some reason you wanted to know the user who just 
crashed you awsome app:<br>
<br><div style="margin-left:40px">package MyApp::Error<br><br>use moose;<br>extends 'Throwable::Error';<br><br>has 'user_id' => (<br>    is => 'ro'<br>    isa => 'Int',<br>);<br>
</div><br><br>Then in you app. (i usually pull my exception class in via a role, then delegate the classes methods/accessors)<br><br><div style="margin-left:40px">try {<br>
    #SOMETHING AWFUL HAPPENED<br>    $some_object->fail_method();<br>}<br>catch {<br>    $self->throw( {<br>        message =>  $_,<br>        user_id => $self->user->id<br>    } ); <br>};<br></div><br>


<br><br><br><a href="http://mojolicio.us/perldoc/ojo" target="_blank">http://mojolicio.us/perldoc/ojo</a><br>fun one-liner stuff with mojolicious<br><br><br><br><a href="http://mojolicio.us/perldoc/Mojo/UserAgent" target="_blank">http://mojolicio.us/perldoc/Mojo/UserAgent</a><br>


some really nifty method chains in mojo's reimplementation of 
useragent... the dom stuff should make web scraping a breeze, especially
 for one-off stuff or site monitors, etc..<br><br><br>I know there were some more modules i mentioned but I can't think of them at the moment.<br>
<br><br><br>JQUERY stuff:<br><br><a href="http://datatables.net/" target="_blank">http://datatables.net/</a><br>provides easy searchable, filterable, sortable tables by just passing it a hash (json)<br><br><a href="https://github.com/RobertFischer/JQuery-PeriodicalUpdater/" target="_blank">https://github.com/RobertFischer/JQuery-PeriodicalUpdater/</a><br>


decaying, non-blocking ajax poller... so you can provide for instance a min and max polling interval and a rate of decay<br>So
 you can tell it to poll every second for 2 requests then step to 2 
seconds for two requests, then 3... and so on up to a max of 10 (for 
instance).  And you can set a maximum number of polls...<br>
Also it doesn't trigger the callback function you define unless the results of the last poll are different than the current one.<br><br><br><br>-- John<br>