java-perl.txt

=java

import java.io.*;

public class CalcRect2 {
    public static void main(String[] args) throws IOException {
        BufferedReader in;

        in = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter x: ");
        float x = Float.valueOf(in.readLine().trim()).floatValue();
        System.out.println("Enter y: ");
        float y = Float.valueOf(in.readLine().trim()).floatValue();


        float circumference = 2*(x+y);
        float area          = x*y;

        System.out.println("Circumference: " + Float.toString(circumference));
        System.out.println("Area: " + Float.toString(area));
    }
}

=cut

#moosex-declare

use feature qw/say/;
use MooseX::Declare;

class CalcRect2 {
    use IO::Prompt;

    has x => ( is => 'rw', isa => 'Num', default => 0 );
    has y => ( is => 'rw', isa => 'Num', default => 0 );

    method main () {
        $self->x("" .prompt("Enter x: "));
        $self->y("" .prompt("Enter y: "));

        my $circumference = 2 * ($self->x + $self->y);
        my $area          = $self->x * $self->y;

        say "Circumference: $circumference";
        say "Area: $area";
    }
}

CalcRect2->new->main;

#plain perl

use strict;
use warnings;

print "Enter x: ";
my $x = read_num();
print "Enter y: ";
my $y = read_num();

my $circumference = 2 * ($x + $y);
my $area          = $x * $y;

print "Circumference: $circumference\n";
print "Area: $area\n";

sub read_num {
    return $1 if <STDIN> =~ /(\d+(?:.\d+)?)/;
    die "Not a number\n";
}