#!/usr/bin/perl
# Ex6_2.plx
use warnings;
use strict;

my $target;
while (1) {
   print "Do jakiego pliku mam zapisa? ";
   $target = <STDIN>;
   chomp $target;
   if (-d $target) {
      print "Nie mona, $target jest katalogiem.\n";
      next;
   }
   if (-e $target) {
      print "Plik ju istnieje. Co mam zrobi?\n";
      print "(Wprowad 'r', aby zmieni nazw pliku, ";
      print "'o' aby zmieni istniejcy plik lub\n";
      print "'b' aby zapisa istniejcy plik jako $target.old)\n";
      my $choice = <STDIN>;
      chomp $choice;
      if ($choice eq "r") {
         next;
      } elsif ($choice eq "o") {
         unless (-o $target) {
            print "Nie mona zapisa $target, nie jeste jego wacicielem \n";
            next;
         }
         unless (-w $target) {
            print "Nie mona zapisa $target: $!\n";
            next;
         }
      } elsif ($choice eq "b") {
      if  (-e  $target.".old")  {
         print  "Plik z kopi ju istnieje. Czy nadal chcesz zapisa pod tak nazw?\n";
         my  $choice  =  <STDIN>;
         chomp  $choice;
         next unless  ($choice  eq  "y");
      } elsif ( rename($target,$target.".old") ) {
         print "OK, zmieniem nazw $target na $target.old\n";
      } else {
         print "Nie mona zmieni nazwy pliku: $!\n";
         next;
         }
      } else {
         print "Nie zrozumiaem polecenia.\n";
         next;
      }
   }
   last if open OUTPUT, "> $target";
   print "Nie mona zapisa jako $target: $!\n";
   # Wracamy na pocztek
}
print OUTPUT "Gratulacje.\n";
print "Zapisano do pliku $target\n";