Check if Queue empty or full in perl

Hi, I got problem with queue code how to determined empty and full and problem with while loop

Here is my pseudo code :

Input page Access
Input Pgae Frame
For i =3 to pageframe count by 1
  construct queue of size i
  set pageFaultCount to 0
   while morepages do
       page = NextPage
       if queue.isINqueue <-- page then
          do nothing
       else
          if queue.isFull then
             queue.dequeue <-- page
             queue.enqueue <-- pageFaultCount  
             add 1 to pageFaultCount
          endif
       endif
   end while
   output pagefault for i frames
end for

perl code :

#!usr/bin/perl -w
use Thread::Queue;

print "Enter require page";
chomp(my $page = <STDIN>);
my @page = split(' ', $page);
print "Enter upperBound";
chomp(my $bound = <STDIN>);
 for ($i1 = 3; $i1<= $bound;$i1++)
    {
    my $queue = Thread::Queue->new($bound);
     my @queue = split(' ', $queue);
     $size = @queue;
    my $pageFaultCount = 0;
    my $nextpage = 0;
       while ( $page >= 0 )
    if ()
   {
    do nothing
    }
  else
       {
               $page = $page + $nextpage;

                if(@queue >= $size)
                 {
                    $queue->dequeue(@page);
                    $queue->enqueue(@page);
                    $pageFaultCount = $pageFaultCount + 1;
                 }
             print " $pageFaultCount for $i1 Frames\n";        
      }# end if
   } # end while
     } # End for

Thank

Compared to your pseudocode, why is the last print statement included in the last Endif instead of after the end-while? or which is the correct form you wish...