Skip to content

Instantly share code, notes, and snippets.

MOJO_USERAGENT_DEBUG=1 perl t/mojolicious/redirect_headers.t
1..2
NEW BLOCKING REQUEST
TEST SERVER STARTED (http://*:17728)
NEW CONNECTION (http:localhost:17728)
> GET /first HTTP/1.1
User-Agent: Mojolicious (Perl)
Connection: Close
Content-Length: 0
Host: localhost:17728
#!/usr/bin/env perl
# put.pl
# This works :
# ./put.pl daemon
# mojo get --method PUT --content 'foo' --header 'X-Disk: /tmp' http://localhost:3000/here
# This does not :
# ./put.pl get --method PUT --content 'foo' --header 'X-Disk: /tmp' /here
#!/usr/bin/env perl
# put.t
use Test::More tests => 3;
use Mojolicious::Lite;
use Test::Mojo;
$ENV{MOJO_MAX_MEMORY_SIZE} = 2; # Force temp files.
$ENV{MOJO_TMPDIR} = "/nosuchdir"; # test setting tempdir dynamically
@bduggan
bduggan / inotify.pl
Created September 26, 2012 17:11
poll
#!/usr/bin/env perl
use Linux::Inotify2;
my $filename = $ARGV[0] or die "need a filename";
# create a new object
my $inotify = new Linux::Inotify2 or die "unable to create new inotify object: $!";
# add watchers
@bduggan
bduggan / event.pl
Created September 26, 2012 17:14
sleep
#!/usr/bin/env perl
use Mojo::IOLoop;
use feature 'say';
Mojo::IOLoop->timer(5 => sub {
say "It has been 5 seconds, it is now ".localtime;
} );
say "It is now ".localtime;
Event Driven Programming
- no blocking
- no polling
- no sleeping
- events and callbacks
- inotify vs stat
- sleep vs timers
- web services
#!/usr/bin/env perl
use Test::More qw/no_plan/;
use Test::Mojo;
use Mojolicious::Lite;
get '/u' => 'index';
my $t = Test::Mojo->new();
$t->get_ok( $t->ua->app_url->userinfo('secret:pass')->path('/u')
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/reference/:doi' => sub {
my $c = shift;
my $doi = $c->stash('doi');
$c->render_json({
author => "Author id goes here",
journal => "The great journal with doi $doi",
<script src="/mojo/jquery/jquery.js"></script>
<span id='foo'></span>
<script>//<![CDATA[
$(document).ready(function() {
$("#foo").html("hello, world");
});
//]]></script>
%= stylesheet "http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css";
</head>
<body>
<pre>
Sample:
<span id='foo'></span>
</pre>
<script type='text/template' id='ref_template'>
journal : <b><%%= journal %><b>