普通のキュー

30分プログラム、その717。最近、functionalなキューばかり作っていたので、普通のキューも作ってみました。
ま、Perlだから配列にpushしてshiftするとキューになるんですけどね! せっかくなので、オブジェクトっぽくしておきました。

使い方

my $q = Queue->new();
$q->add(1);
$q->add(2);
$q->add(3);

print $q->get,"\n";
print $q->get,"\n";
print $q->get,"\n";

ソースコード

#! /usr/bin/perl
# -*- mode:perl; coding:utf-8 -*-
#
# queue.pl -
#
# Copyright(C) 2010 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2010/01/08 22:53:04
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

use strict;
use warnings;
use Data::Dumper;

{
    package Queue;

    sub new {
	my $class = shift;
	return bless [],$class;
    }

    sub add{
	my ($self,$v) = @_;
	push @$self,$v;
    }

    sub get {
	my ($self) = @_;
	shift @$self;
    }
}

my $q = Queue->new();
$q->add(1);
$q->add(2);
$q->add(3);

print $q->get,"\n";
print $q->get,"\n";
print $q->get,"\n";