Modulinos: Difference between revisions

Content added Content deleted
(Perl, Python, Ruby: stop exporting a function named 'main'.)
Line 492: Line 492:


=={{header|Perl}}==
=={{header|Perl}}==
Perl has scripted main. The code inside <tt>unless(caller) { ... }</tt> only runs when <tt>Life.pm</tt> is the main program.
Perl has scripted main.

scriptedmain.pm


<lang perl>#!/usr/bin/env perl
<lang perl>#!/usr/bin/env perl

# Life.pm
package Life;


use strict;
use strict;
use warnings;


sub meaning_of_life {
sub meaning_of_life {
Line 504: Line 506:
}
}


unless(caller) {
sub main {
print "Main: The meaning of life is " . meaning_of_life() . "\n";
print "Main: The meaning of life is " . meaning_of_life() . "\n";
}</lang>
}

unless(caller) { main; }</lang>

test.pl


<lang perl>#!/usr/bin/env perl
<lang perl>#!/usr/bin/env perl


# death.pl
use strict;
use strict;
use ScriptedMain;
use warnings;


use Life;
print "Test: The meaning of life is " . meaning_of_life() . "\n";</lang>

print "Life means " . Life::meaning_of_life . ".\n";
print "Death means invisible scary skeletons.\n";</lang>


=={{header|PHP}}==
=={{header|PHP}}==
Line 547: Line 549:
=={{header|Python}}==
=={{header|Python}}==
Python has scripted main.
Python has scripted main.

scriptedmain.py


<lang python>#!/usr/bin/env python
<lang python>#!/usr/bin/env python

# life.py


def meaning_of_life():
def meaning_of_life():
return 42
return 42


if __name__ == "__main__":
def main():
print "Main: The meaning of life is %s" % meaning_of_life()
print "Main: The meaning of life is %s" % meaning_of_life()</lang>


<lang python>#!/usr/bin/env python
if __name__=="__main__":
main()</lang>


test.py
# death.py

<lang python>#!/usr/bin/env python


import scriptedmain
from life import meaning_of_life


print "Test: The meaning of life is %s" % scriptedmain.meaning_of_life()</lang>
print "Life means %s." % meaning_of_life()
print "Death means invisible scary skeletons."</lang>


=={{header|R}}==
=={{header|R}}==
Line 609: Line 609:
Ruby has scripted main.
Ruby has scripted main.


<lang ruby># life.rb
scriptedmain.rb

<lang ruby>#!/usr/bin/env ruby


def meaning_of_life
def meaning_of_life
42
42
end

def main
puts "Main: The meaning of life is #{meaning_of_life}"
end
end


if __FILE__ == $0
if __FILE__ == $0
puts "Main: The meaning of life is #{meaning_of_life}"
main
end</lang>
end</lang>


<lang ruby># death.rb
test.rb

<lang ruby>#!/usr/bin/env ruby


require "scriptedmain"
require 'life'


puts "Test: The meaning of life is #{meaning_of_life}"</lang>
puts "Life means #{meaning_of_life}."
puts "Death means invisible scary skeletons."</lang>


=={{header|Tcl}}==
=={{header|Tcl}}==