Skip to content

Instantly share code, notes, and snippets.

@dr-kd
Last active September 15, 2015 06:35
Show Gist options
  • Save dr-kd/362522cab63c28cb6661 to your computer and use it in GitHub Desktop.
Save dr-kd/362522cab63c28cb6661 to your computer and use it in GitHub Desktop.
require versus use
package Quack;
use Moose;
use Quack::LikeADuck;
sub do_something {
require Miaow;
Miaow->new->do_something;
}
sub run {
Quack::LikeADuck->new->moo;
}
__PACKAGE__->meta->make_immutable;
1;
package Miaow;
use Moose;
sub do_something {
require Quack::LikeADuck;
Quack::LikeADuck->moo;
}
__PACKAGE__->meta->make_immutable;
1;
package Quack::LikeADuck;
with 'Laugh::LikeACow'; # unimplemented neigh method
sub moo {
$_->[0]->neigh;
}
__PACKAGE__->meta->make_immutable;
1;
package main;
use Quack;
Quack->run;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment