geopoint/perl/GeoPoint-pure.pl

Run Settings
LanguagePerl
Language Version
Run Command
use v5.24; use warnings; package GeoPoint; use overload '""' => \&gist; sub Longitude { my ($lon) = @_; die "Not a valid longitude" unless $lon >= -180 and $lon <= 180; return $lon; } sub Latitude { my ($lat) = @_; die "Not a valid latitude" unless $lat >= -90 and $lat <= 90; return $lat; } sub new { my ($class, %o) = @_; my $lat = Latitude($o{lat}); my $lon = Longitude($o{lon}); bless { lat => $lat, lon => $lon }, $class; } sub lat { my $self = shift; if (@_) { $self->{lat} = shift } return $self->{lat}; } sub lon { my $self = shift; if (@_) { $self->{lon} = shift } return $self->{lon}; } sub gist { my $self = shift; return ($self->{lat} >= 0 ? "N$self->{lat}" : "S" . -$self->{lat}) . " " . ($self->{lon} >= 0 ? "E$self->{lon}" : "W" . -$self->{lon}) } my $geo = GeoPoint->new(lat => 39.1915045, lon => -96.6070506); say $geo->lat; # 39.1915045 say $geo->lon; # -96.6070506 say $geo; # N39.1915045 W96.6070506
Editor Settings
Theme
Key bindings
Full width
Lines