#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use 5.016; my $url = 'https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/dotnetperls-controls/enable1.txt'; my $file = '/home/hogan/Documents/phone/from_laptop/my_data/bb.txt'; getstore($url, $file); ## open my $IN, '<', $file or die "$!"; my %words; while (my $word = <$IN>) { chomp $word; undef $words{$word}; } my %reported; for my $word (keys %words) { my $length = length $word; for my $pos (0 .. $length - 1) { my $skip_itself = ! $pos; for my $len (1 .. $length - $pos - $skip_itself) { my $subword = substr($word, $pos, $len); next if exists $reported{$subword}; next if $word eq $subword . q{s} or $word eq $subword . q{'s}; if (exists $words{$subword}) { say "$subword"; undef $reported{$subword}; } } } } #### $ grep phosphorylating bb.txt dephosphorylating phosphorylating $ grep aerially bb.txt aerially subaerially $ grep physiology bb.txt ecophysiology electrophysiology histophysiology neurophysiology pathophysiology physiology psychophysiology $ grep quids bb.txt equids liquids nonliquids quids semiliquids soliquids squids $ grep consciouses bb.txt consciouses preconsciouses subconsciouses unconsciouses $