+#!/usr/bin/perl
+use strict;
+use warnings;
+
+my $USER_NAME = "USER"
+
+
+my $folder_to_backup = "/home/'$USER_NAME'";
+my $floppy_mount = "/mnt/floppy";
+
+system("sudo");
+# log messages
+sub log_message {
+ my ($message, $is_error) = @_;
+ my $timestamp = localtime();
+ my $log_file = $is_error ? "/var/log/floppy_backup_error.log" : "/var/log/floppy_backup.log";
+
+ open(my $log, '>>', $log_file) or die "Could not open log file '$log_file': $!";
+ print $log "[$timestamp] $message\n";
+ close $log;
+
+ print $is_error ? "ERROR: $message\n" : "$message\n";
+}
+
+# create mount point
+unless (-d $floppy_mount) {
+ system("mkdir -p $floppy_mount") == 0
+ or die "Failed to create mount point: $?";
+}
+
+# attempt to mount the floppy
+my $mount_result = system("mount /dev/fd0 $floppy_mount");
+if ($mount_result != 0) {
+ log_message("Failed to mount floppy disk", 1);
+ exit 1;
+}
+
+# check if source folder exists
+unless (-d $folder_to_backup) {
+ system("umount $floppy_mount");
+ log_message("Source folder does not exist", 1);
+ exit 1;
+}
+
+# copy contents
+my $copy_result = system("cp -r $folder_to_backup/* $floppy_mount/");
+if ($copy_result != 0) {
+ log_message("Failed to copy files", 1);
+ system("umount $floppy_mount");
+ exit 1;
+}
+
+system("sync"); # ensure all data is written
+system("umount $floppy_mount"); # unmount the floppy
+system("eject /dev/fd0"); # eject the floppy
+print "done!";
+
+exit 0;